这个XML的XPath是什么?

Dis*_*ted 0 xml xslt xpath

可能问题很简单,但我只是坚持这个......我有以下XML

<?xml version="1.0" encoding="utf-8"?>
<InfoLinkDocument>
  <HAWBUpdate>
    <HAWBNumber>41665496563</HAWBNumber>
    <HAWBDetails>
      <HAWBWeight>2.56</HAWBWeight>
      <HAWBWeightUnit>KG</HAWBWeightUnit>
    </HAWBDetails>
  </HAWBUpdate>
</InfoLinkDocument>
Run Code Online (Sandbox Code Playgroud)

我在我的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>
Run Code Online (Sandbox Code Playgroud)

但由于某种原因HAWBWeight,HAWBWeight2并且HAWBWeight3是空的.为什么?在这种情况下XPath应该是什么?

Ale*_* R. 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>
Run Code Online (Sandbox Code Playgroud)

输出:

<?xml version="1.0" encoding="UTF-8"?>

    HAWBWeight: 2.56
    HAWBWeight2: 2.56
    HAWBWeight3: 2.56
Run Code Online (Sandbox Code Playgroud)

http://xslttest.appspot.com/中测试过