2016-08-05 16 views
1

Ich versuche, eine Kategoriehierarchie aus der folgenden Markup abzurufen up:XPath des unmittelbaren Kind-Textes vs. aller Nachkommen-Text?

<ul class="categories"> 
    <li>My top level category 
     <ul> 
      <li>my second level category</li> 
     </ul> 
    </li> 
</ul> 

ich den Namen der Top-Level-Kategorie mit dem folgenden XPath erhalten möchten:

//ul[@class='categories']/li/text() 

Aber das offensichtlich gibt den gesamten Text dieser Lizenz einschließlich der Kategorien der zweiten Ebene zurück.

Wie erfasse ich in der Top-Level-Kategorie mit einem Xpath. Sie können davon ausgehen, dass Kategorien nur zwei Ebenen tief sind (oberste Ebene und zweite Ebene).

Antwort

0

Aber das gibt offensichtlich den gesamten Text dieser li einschließlich der Kategorien der zweiten Ebene zurück.

Eigentlich nicht, wird //ul[@class='categories']/li/text() nur geben die sofort Kinder Textknoten der passenden //ul[@class='categories']/li Elemente. In diesem Fall: My top level category.

Hatten Sie eine der folgenden XPaths angegeben, können Sie auch my second level category ausgewählt haben würde:

  • //ul[@class='categories']/li//text()
  • string(//ul[@class='categories']/li)