我有一些我想用xslt处理的xml.密钥值对中有大量数据(见下文).我正在努力解决如何将密钥的值基础提取到变量中.我希望能够做到这样的事情:
<xsl:variable name="foo" select="/root/entry[key = 'foo']/value"/>
但这似乎不起作用.这是xml示例.
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <entry> <key> foo </key> <value> bar </value> </entry> </root>
这个正确的xpath是什么?
以下转换显示了实现此目的的两种方法 – 使用和不使用< xsl:key>和key()函数:
原文链接:https://www.f2er.com/xml/292103.html<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes"/> <xsl:key name="kValueByKey" match="value" use="normalize-space(../key)"/> <xsl:template match="/"> 1. By key: <xsl:text/> <xsl:copy-of select="key('kValueByKey','foo')"/> 2. Not using key: <xsl:text/> <xsl:copy-of select="/*/*[normalize-space(key)='foo']/value"/> </xsl:template> </xsl:stylesheet>