这个XML的XPath是什么?

时间:2017-09-06 15:34:53

标签: 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>

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

但由于某种原因HAWBWeightHAWBWeight2HAWBWeight3为空。为什么?在这种情况下XPath应该是什么?

1 个答案:

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

http://xslttest.appspot.com/

中测试