如何使用for循环处理xslt中名称相同但属性值不同的xml标记

如何使用for循环处理xslt中名称相同但属性值不同的xml标记,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,XML 萨拉尼亚 1234 萨曼达夫 加亚特里 5678 加拉赫 XSL: 我在使用for循环获取不同行的值时遇到问题,我获取所有行中第一行的值。我正在尝试从XML中获取所有行的值。有人能帮我吗。 提前感谢:)在XPath中使用/意味着:通过完整的文件搜索所有这些元素。如果可以,您应该始终使用/ 更改: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http

XML


萨拉尼亚
1234
萨曼达夫
加亚特里
5678
加拉赫
XSL:


我在使用for循环获取不同行的值时遇到问题,我获取所有行中第一行的值。我正在尝试从XML中获取所有行的值。有人能帮我吗。
提前感谢:)

在XPath中使用
/
意味着:通过完整的文件搜索所有这些元素。如果可以,您应该始终使用
/

更改:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:for-each select="//ROW">
<businessobject>
     <fulltext>
             <title><xsl:value-of select="//COLUMN[@NAME='Title']"/></title>
             <id><xsl:value-of select="//COLUMN[@NAME='Case_ID']"/></id>
             <nccode><xsl:value-of select="//COLUMN[@NAME='System_Id']"/></nccode>
     </fulltext>
</businessobject>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
<xsl:value-of select="COLUMN[@NAME='Title']"/>

致:


您甚至可以进行更多更改,并更具相关性:

更改:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:for-each select="//ROW">
<businessobject>
     <fulltext>
             <title><xsl:value-of select="//COLUMN[@NAME='Title']"/></title>
             <id><xsl:value-of select="//COLUMN[@NAME='Case_ID']"/></id>
             <nccode><xsl:value-of select="//COLUMN[@NAME='System_Id']"/></nccode>
     </fulltext>
</businessobject>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
<xsl:value-of select="COLUMN[@NAME='Title']"/>

致:


试着这样做:

<xsl:for-each select="RESULTS/ROW">


请注意,在您的输入示例中没有列[@NAME='Title'.

我想您必须提供源XML。使用4个或更多空格缩进来保持XML格式。
<xsl:for-each select="RESULTS/ROW">
<xsl:template match="/">
    <xsl:for-each select="RESULTS/ROW">
      <businessobject>
        <fulltext>
             <title><xsl:value-of select="COLUMN[@NAME='Title']"/></title>
             <id><xsl:value-of select="COLUMN[@NAME='Case_ID']"/></id>
         <nccode><xsl:value-of select="COLUMN[@NAME='System_Id']"/></nccode>
        </fulltext>
      </businessobject>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>