Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取XSL中的XML元素属性_Xml_Xslt - Fatal编程技术网

读取XSL中的XML元素属性

读取XSL中的XML元素属性,xml,xslt,Xml,Xslt,假设我有以下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; flo

假设我有以下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测试返回为false。我尝试过使用Reviews/REVIEW/ATTR1,只使用ATTR1,但没有任何效果。我甚至不确定这是从元素获取属性的方法。我查阅了W3学校,但他们的教程没有提到如何获取属性。XML非常新,XSL也非常新。谢谢。

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

试试这个

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

一些东西:


美丽!我不知道,。非常感谢。