1

我有以下 xml:

<w:style w:styleId="John">
  <w:name w:val="Peter" />
</w:style>

所以基本上,拥有“彼得”的价值,我想得到“约翰”的价值(当时我不知道)。我的 xml 中会有很多“w:style”节点。

如何使用 xslt(和 xpath)1.0(最好调用命名模板来返回值)获取返回给我的“John”字符串的值?

4

1 回答 1

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:stylethen的直接子元素

key('nameByVal', 'Peter')/ancestor::w:style/@w:styleId
于 2013-04-03T12:19:41.213 回答