2017-08-14 4 views
0

Ich habe die folgende Lis:xPath: Wählen Sie eine Reihe von Geschwisterknoten bis zu einem bestimmten Geschwisterknoten

<ul> 
    //1st subcategory with 4 sub categories   
    <li class="supercategory"></li> 
     <li class="subcategory"></li> 
     <li class="subcategory"></li> 
     <li class="subcategory"></li> 
     <li class="subcategory"></li> 

    //2nd subcategory with 3 sub categories 
    <li class="supercategory"></li> 
     <li class="subcategory"></li> 
     <li class="subcategory"></li> 
     <li class="subcategory"></li> 

    //3d subcategory with 1 sub category 
    <li class="supercategory"></li> 
     <li class="subcategory"></li> 
</ul> 

Ich habe versucht, alle „Level-2“ s zu erhalten, die nach jedem Super kommen Kategorie. Also für die erste Superkategorie wäre die Xpath-Übereinstimmung die 4 Unterkategorien Geschwister lis und die 2. Oberkategorie der Xpath wird 3 lis und so weiter.

Ich habe einige Dinge ausprobiert, aber ein verein Start so etwas wie wäre:

//li[@class="supercategory"][position()=2]/following-sibling::li[@class ="subcategory"] 

Ich versuche, die 3 Unter lis nach dem 2. Ober zu erhalten, aber offensichtlich wird diese Rückkehr all lis mit Klassen Unterkategorie.

Daher frage ich mich, ob es ein Prädikat gibt, das besser geeignet wäre, um dieses Problem zu lösen. Vor allem, dass in diesem Szenario die Unterkategorien Geschwisterknoten mit ihren Unterkategorien sind.

Der Einfachheit halber habe ich dies hier getestet: https://www.freeformatter.com/xpath-tester.html

Vielen Dank im Voraus.

Antwort

0

Wie verwenden Sie den XPath?

Wenn Sie nur die Superkategorien durchlaufen und somit ihre Positionen kennen und den xpath dynamisch erstellen können, können Sie einfach die vorhergehenden Superkategorien zählen.

+0

Sorry, ich habe vergessen anzugeben, dass die Xpath-Regel dazu bestimmt war, die Unterkategorien der 2. Super-Kategorie zu bekommen. Dies scheint auch für die anderen Unterkategorien zu funktionieren. – Orochi1992

+0

Nun, wenn Sie nur die Unterkategorien der 2. Super Kategorie bekommen wollen, ist dies genau der XPath, den Sie verwenden sollten. –

+0

Mit einigen kleinen Änderungen kann es an andere Super-Kategorien angepasst werden. Also danke, es funktioniert. – Orochi1992

Verwandte Themen