我有以下xml:
<w:style w:styleId="John">
<w:name w:val="Peter" />
</w:style>
所以基本上,拥有“彼得”的价值,我想得到“约翰”的价值(我当时不知道)。我的xml中会有很多“w:style”节点。
如何使用xslt(和xpath)1.0(最好是调用命名模板来返回值)将“John”字符串的值返回给我?
答案 0 :(得分:2)
将提取所需内容的基本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
的直接子元素中,那么
key('nameByVal', 'Peter')/ancestor::w:style/@w:styleId