У меня есть xml, который имеет одинаковые элементы на 2 разных уровнях. Мне нужно сравнить значение элементов на 2 уровнях и вернуть значение соответствующего элемента.Например, у меня есть следующий xml
<root>
<profiles>
<profile>
<Name>xxx</Name>
<Gender>Male</Gender>
</profile>
<profile>
<Name>yyy</Name>
<Gender>Female</Gender>
</profile>
</profiles>
<subroot>
<profiles>
<profile>
<sName>xxx</sName>
<sAge>10</sAge>
</profile>
<profile>
<sName>yyy</sName>
<sAge>20</sAge>
</profile>
</profiles>
</subroot>
</root>
. Мне нужно поставить цикл для //root/subroot/profiles/profile
и получить значение Name,Age,Gender
элементов.Принимая во внимание, что мы должны взять значение элемента Gender, сравнивая значение элемента name с xpath //root/profiles/profile
.Когда я использую приведенный ниже код
<xsl:for-each select="//root/subroot/profiles/profile">
<xsl-for-each select="//root/profiles/profile">
<xsl:choose>
<xsl:when name=sname>
<xsl:value-of select="Gender">
</xsl:when>
</xsl:choose>
<xsl:for-each>
</xsl-for-each>
, я получаю соответствующее значение пола для 1-го элемента, когда при обходе цикла для 2-го элемента возвращается то же значение 1-го элемента, что и для xxx, yyy Пол возвращаетсякак «мужской».Кто-то проверил этот код и дал мне знать, как решить эту проблему