我无法根据兄弟元素数据找到正确的语法来查找元素的值。
鉴于我有以下 XML:
<files>
<file>
<location>location1.txt</location>
<metadata>
<foo>some value 1</foo>
</metadata>
</file>
<file>
<location>location2.txt</location>
<metadata>
<foo>some value 2</foo>
</metadata>
</file>
<file>
<location>location3.txt</location>
<metadata />
</file>
</files>
如果我只查找 file/metadata/foo = "some value 2" 的位置,那么找到正确位置值的正确 XPATH 表达式是什么?如果我依赖于兄弟姐妹或该兄弟姐妹的孩子中的数据,我似乎无法找到正确的语法来定位它。
我找到了一个解决方案,我使用 xslt 遍历文件元素,并以这种方式找到合适的值,但它不是很优雅。
<xsl:variable name="profileAlias">
<xsl:for-each select="files/file">
<xsl:if test="metadata/foo='some value 2'">
<xsl:value-of select="location">
</xsl:if>
</xsl:for-each>
</xsl:variable>