在xslt中检索xml元素的值

时间:2014-04-28 16:15:47

标签: xml xslt

我的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

1 个答案:

答案 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"/>

会工作得很好。