我有一个xml数据,如下所示。
<Roll NO="4620" CLASSNO="0" ID="0" DID="0" REVSN="0" DNO="3" ></Roll>
<Roll NO="4630" CLASSNO="0" ID="0" DID="0" REVSN="0" DNO="3"></Roll>
我想迭代遍历属性而不使用XSLT指定名称。 有办法吗?
答案 0 :(得分:8)
您可以使用此XPath @*
获取所有属性,例如:
XML:
<Roll NO="4620" CLASSNO="0" ID="0" DID="0" REVSN="0" DNO="3"/>
XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/*">
<xsl:for-each select="@*">
<xsl:value-of select="concat(name(), ': ', ., ' ')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
输出:
NO: 4620 CLASSNO: 0 ID: 0 DID: 0 REVSN: 0 DNO: 3
答案 1 :(得分:0)
您的代码格式不正确xml,但围绕它的问题:
<xsl:template match="Roll"> <!-- or "SB" or whatever -->
<xsl:for-each select="@*">
<!-- ... whatever you want to do with them ... -->
<!-- use local-name and value(.) -->
</xsl:for-each>
</xsl:template>