Ich habe die folgende XML-Struktur, wo DIV2 und DIV3 in DIV1 sind. Ich wollte die Anzahl der * Topic-Elemente unter DIV1 zählen, wenn mein Kontext DIV2/DIV3 ist.XPATH: Get Precedes Childrens
Also hier wollte ich "2" zurückgeben, da DIV1 2 Elemente (Atopic und Btopic) hat. Und geben Sie "2" zurück, da DIV1 2 Elemente (Atopic und Btopic) bei der Verwendung von DIV3 hat. Ähnlich sollte Kind von DIV4 "1" zurückgeben.
Die einzige Überlegung ist, den Körper/Sparte Kinder brauchen
Hilfe<body>
<division>
....DIV1....
<Atopic> .. </Atopic>
<Btopic> .. </Btopic>
<division>
.....DIV2..........
<Atopic> .. </Atopic>
<Btopic> .. </Btopic>
</division>
<division>
.....DIV3..........
<Atopic> .. </Atopic>
<Btopic> .. </Btopic>
</division>
</division>
<division>
....DIV4....
<Ctopic> .. </Ctopic>
</division>
<body>
pls gezählt und nicht die Division/Division werden diese über XPath zu erreichen.
Dank ! Es funktioniert gut :) Ist es möglich, Btopic von der XPath-Logik auszuschließen, so dass es in beiden DIV-Fällen 1 zurückgibt. –
Fügen Sie einfach ein weiteres Prädikat '[not (self :: Btopic)]' hinzu. –
count (Vorfahr :: division [last()]/* [contains (name(), 'topic')] [nicht (self :: introtopic)]) ist das korrekt –