Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Xslt 正确使用select的值在数据输入字段中选择所需值_Xslt - Fatal编程技术网

Xslt 正确使用select的值在数据输入字段中选择所需值

Xslt 正确使用select的值在数据输入字段中选择所需值,xslt,Xslt,我一直在努力使用select的xsl:value获得我想要的输出,但是我似乎没有走上正确的轨道 这是XML数据: <?xml version="1.0" encoding="utf-8"?> <ENTRY NAME="CustomerSite" CLASS="Site"> <ENTRY NAME="Production" CLASS="Configuration Set"> <ATTRIBUTE NAME="VersionMinor"> &

我一直在努力使用select的xsl:value获得我想要的输出,但是我似乎没有走上正确的轨道

这是XML数据:

<?xml version="1.0" encoding="utf-8"?>
<ENTRY NAME="CustomerSite" CLASS="Site">
  <ENTRY NAME="Production" CLASS="Configuration Set">
<ATTRIBUTE NAME="VersionMinor">
  <VALUE>0</VALUE>
</ATTRIBUTE>
<ATTRIBUTE NAME="VersionMajor">
  <VALUE>3</VALUE>
</ATTRIBUTE>
<ATTRIBUTE NAME="Site Identifier">
  <VALUE>1</VALUE>
</ATTRIBUTE>
<ATTRIBUTE NAME="VersionPoint">
  <VALUE>0</VALUE>
</ATTRIBUTE>
<ATTRIBUTE NAME="Note ID Dial String Digits">
  <VALUE>*90</VALUE>
</ATTRIBUTE>
<ENTRY NAME="Account Codes" CLASS="Account Codes">
<ATTRIBUTE NAME="Enable">
  <VALUE>No</VALUE>
</ATTRIBUTE>
  </ENTRY>
</ENTRY>

0
3.
1.
0
*90
不
这是我使用的XLS代码:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
<html>
  <body>
        <xsl:for-each select="ENTRY">
          <xsl:if test="@CLASS='SITE'">
            <xsl:value-of select="./ENTRY/@NAME"/>
          </xsl:if>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

我要提取的数据是在第一个输入字段中用作名称值的“CustomerSite”

谢谢
这里的第一个问题是,属性类的值是“Site”(而不是“Site”)

但是,您的输出将是“生产”,因为for each选择第一个(根)条目,而不是select child ENTRY NAME属性的值

要获得“CustomerSite”,请使用


或者更好(每种需要都没有):


恐怕我已经看得太久了,忽略了站点测试的资本化:(谢谢你指出这一点。
<xsl:if test="@CLASS='Site'">
    <xsl:value-of select="@NAME"/>
</xsl:if>
<xsl:value-of select="/ENTRY[@CLASS='Site']/@NAME"/>