2016-11-16 6 views
0

Ich muss Knoten filtern, ob eines ihrer Kinder alle Bedingungen erfüllt. Hier ist ein exemple:XPath mehrere Bedingungen auf demselben Kindknoten

<root> 
    <grp pos="1"> 
     <test pos="1" id="2"/> 
     <test pos="2" id="1"/> 
     <test pos="3" id="1"/> 
     <test pos="4" id="2"/> 
     <test pos="5" id="1"/> 
    </grp> 
    <grp pos="2"> 
     <test pos="6" id="1"/> 
     <test pos="7" id="2"/> 
     <test pos="8" id="1"/> 
     <test pos="9" id="1"/> 
     <test pos="10" id="2"/> 
    </grp> 
</root> 

und die xsl

<xsl:template match="/root"> 
    <xsl:value-of select="grp[test/@pos='1' and test/@id='1']/@pos"/> 
</xsl:template> 

Ich brauche die test für beide Bedingungen mit dem gleichen Knoten zu verweisen. Was ich möchte, ist kein grp Knoten, um die Bedingungen zu übergeben, aber die erste tut, weil es ein Kind hat, das die erste Bedingung und ein anderes die zweite Bedingung besteht. Ich möchte, dass das Prädikat ein Kind braucht, das beide besteht.

Antwort

0

Ok, ich wusste nicht, aber es scheint, Sie nisten können Prädikate:

<xsl:value-of select="grp[test[@pos='1' and @id='1']]/@pos"/>

Das tut, was ich will

Verwandte Themen