我试图用来遍历我的元素,但是它一直在重复第一个元素,而不是遍历所有元素。
这是我的xml代码的一部分:
<?xml version="1.0" encoding="ISO-8859-1"?>
<customer ref="Hannah">
<fullname>
<firstname>Hannah</firstname>
<lastname>Hannah</lastname>
</fullname>
<meter ref="Hannah">
<reading>
<meterread>622224492</meterread>
</reading>
</meter>
</customer>
<customer ref="Hannah">
<fullname>
<firstname>Hannah</firstname>
<lastname>Hannah</lastname>
</fullname>
<meter ref="Hannah">
<reading>
<meterread>2822222132</meterread>
</reading>
</meter>
</customer>
这是我的XSL代码的摘要:
<xsl:for-each select="customer">
<p>Name: <xsl:value-of select="customer/fullname"/></p>
<p>Num: <xsl:value-of select="customer//@ref"/></p>
</xsl:for-each>
基本上,它会不断重复第一个客户,而不是遍历每个元素。
任何帮助或建议都会很棒!
答案 0 :(得分:0)
您的xsl:for-each
正在选择customer
元素,因此在xsl:for-each
内部,您将位于customer
元素上。这意味着xsl:value-of
语句中的XPath表达式需要相对于此,而不是绝对路径。
例如,要获取全名,只需相对于当前fullname
元素获取customer
元素
<xsl:value-of select="fullname"/>
答案 1 :(得分:0)
仅更改以下代码:-
<p>Name: <xsl:value-of select="$customerInfo//customer/fullname"/></p>
to
<p>Name: <xsl:value-of select="fullname"/></p>
and
<p>Account Number: <xsl:value-of select="$customerInfo/customer//@number"/></p>
to
<p>Account Number: <xsl:value-of select="@number"/></p>