【问题标题】:Read XML Element attribute in XSL读取 XSL 中的 XML 元素属性
【发布时间】:2014-07-23 03:28:43
【问题描述】:

假设我有以下 XML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Reviews>
    <REVIEW ATTR1="some text" ATTR2="some other text">
</REVIEW>
</Reviews>

我很难让我的 xsl 文件正常工作。这是相关的部分:

          <div style="width:300px; float:left; padding:10px 20px 0 0; vertical-align:top">
            <div style="font-size:14px; padding-left:3px">
              <xsl:for-each select="Reviews/REVIEW">
                <xsl:if test="REVIEW/ATTR1 != ''">
                  Something: <xsl:value-of select="REVIEW/ATTR1" />
                  <br/>
                </xsl:if>
              </xsl:for-each>
            </div>
          </div>

即使 ATTR1 中有某些内容,if 测试也会返回错误。我试过使用评论/评论/ATTR1 和只是 ATTR1 但没有任何效果。我什至不确定这是从元素中获取属性的方法。我查了 W3 学校,但他们的教程没有提到如何获取属性。对 XML 来说非常新,对 XSL 来说是全新的。谢谢。

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    这里有两个问题。首先,要访问一个属性,您需要在其前面加上 @ 符号。其次,在您的 xsl:for-each 中,您当前的上下文是 REVIEW 节点,因此您不需要在表达式中再次包含它。

    试试这个

    <xsl:if test="@ATTR1 != ''">
         Something: <xsl:value-of select="@ATTR1" />
         <br/>
    </xsl:if>
    

    【讨论】:

    • 美女!我不知道@。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    相关资源
    最近更新 更多