我的xml看起来像:myXml.xml
<root>
<element1>x,y,z</element1>
<element2>a,b,c</element2>
<element3>p,a,q</element3>
<element4>y,g,h</element4>
</root>
我试图用xsl查询来检索元素的值,如:
<xsl:variable name="myXml" select="document(myXml.xml)/root"/>
然后将element1与:
进行反复审核<xsl:variable name="element1-val" select="$myXml/local-name()='element1'/@value"/>
它不是重新预期的值:x,y,z
答案 0 :(得分:1)
你错过了一些引用:
<xsl:variable name="myXml" select="document('myXml.xml')/root"/>
您需要加载名为myXml.xml
的文件,而问题中的代码正在尝试加载名称由当前上下文节点的<myXml.xml>
子元素的值指定的文件(当然,它并不存在。
您还缺少一些括号:
<xsl:variable name="element1-val" select="$myXml/*[local-name()='element1']/@value"/>
但实际上你根本不需要本地名称技巧,只需
<xsl:variable name="element1-val" select="$myXml/element1/@value"/>
会工作得很好。