这是我从临时表生成的xml
。SELECT DISTINCT *
FROM #tblCustomer Lines
ORDER BY CustomerNumber
FOR XML PATH('CustomerDetails')
生成的 XML:
<CustomerDetails>
<CustomerNumber>1</CustomerNumber>
<Status>Active</Status>
<CustomerType>Individual</CustomerType>
<Title>Mr</Title>
</CustomerDetails>
<CustomerDetails>
<CustomerNumber>2</CustomerNumber>
<Status>Active</Status>
<CustomerType>Individual</CustomerType>
<Title>Miss</Title>
</CustomerDetails>
我想使用 xslt 删除所有元素并使其以逗号分隔。
预期产出:
<Lines>
<Line Number="1" Data="1,Active,Individual,Mr" />
<LineNumData="2" Data="2,Active,Individual,Mr" />
</Lines>
任何帮助将不胜感激。蒂亚
此解决方案与您提到的输出略有不同,但我想您可以自己从这里继续,以使其符合您的确切需求。要实现以下输出,您可以使用这两个模板
<xsl:template match="/">
<Lines>
<xsl:apply-templates select="node()|@*" />
</Lines>
</xsl:template>
<xsl:template match="CustomerDetails">
<Line>
<xsl:attribute name="number"><xsl:number /></xsl:attribute>
<xsl:value-of select="concat(CustomerNumber,',',Status,',',CustomerType,',',Title)" />
</Line>
</xsl:template>
number
属性通过<xsl:number />
使用 XML 文件中CustomerDetails
的索引。所以它与CustomerNumber
不同.
输出:
<Lines>
<Line number="1">1,Active,Individual,Mr</Line>
<Line number="2">2,Active,Individual,Miss</Line>
</Lines>