可能问题很简单,但我只是坚持这个...... 我有以下XML
<?xml version="1.0" encoding="utf-8"?>
<InfoLinkDocument>
<HAWBUpdate>
<HAWBNumber>41665496563</HAWBNumber>
<HAWBDetails>
<HAWBWeight>2.56</HAWBWeight>
<HAWBWeightUnit>KG</HAWBWeightUnit>
</HAWBDetails>
</HAWBUpdate>
</InfoLinkDocument>
我的XSL文件中有以下内容
<xsl:template match="/InfoLinkDocument">
<xsl:for-each select="HAWBUpdate">
<xsl:variable name="HAWBNumber" select="/HAWBNumber" />
<xsl:variable name="HAWBWeight" select="./HAWBDetails/HAWBWeight" />
<xsl:variable name="HAWBWeight2" select="//HAWBDetails/HAWBWeight" />
<xsl:variable name="HAWBWeight3" select="HAWBDetails/HAWBWeight" />
</xsl:for-each>
但由于某种原因HAWBWeight
,HAWBWeight2
和HAWBWeight3
为空。为什么?在这种情况下XPath应该是什么?
答案 0 :(得分:5)
你的xslt看起来还不错。您可能会在代码中稍后错误地引用您的变量。
这是测试
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/InfoLinkDocument" >
<xsl:for-each select="HAWBUpdate">
<xsl:variable name="HAWBWeight" select="./HAWBDetails/HAWBWeight" />
<xsl:variable name="HAWBWeight2" select="//HAWBDetails/HAWBWeight" />
<xsl:variable name="HAWBWeight3" select="HAWBDetails/HAWBWeight" />
HAWBWeight: <xsl:value-of select="$HAWBWeight"/>
HAWBWeight2: <xsl:value-of select="$HAWBWeight2"/>
HAWBWeight3: <xsl:value-of select="$HAWBWeight3"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
输出:
<?xml version="1.0" encoding="UTF-8"?>
HAWBWeight: 2.56
HAWBWeight2: 2.56
HAWBWeight3: 2.56
中测试