我有以下 xml:
<w:style w:styleId="John">
<w:name w:val="Peter" />
</w:style>
所以基本上,拥有“彼得”的价值,我想得到“约翰”的价值(当时我不知道)。我的 xml 中会有很多“w:style”节点。
如何使用 xslt(和 xpath)1.0(最好调用命名模板来返回值)获取返回给我的“John”字符串的值?
将提取您需要的基本 XPath 表达式是
//w:style[w:name/@w:val = 'Peter']/@w:styleId
但是当你标记你的问题“XSLT”并且你说你有很多这样的节点时,你最好使用密钥
<xsl:key name="nameByVal" match="w:name" use="@w:val" />
然后你可以更有效地使用查询
key('nameByVal', 'Peter')/../@w:styleId
或者如果w:name
可能嵌套在其他元素中而不是w:style
then的直接子元素
key('nameByVal', 'Peter')/ancestor::w:style/@w:styleId