我需要使用XSLT
问题描述:
我有这样的XML一个做了改造后拿到号的XML节点中的一个节点名称使用路径:我需要使用XSLT
<XML>
<dealings>
<members>
<member path="Swap.1.'stream#1.Schedule'" source="0" type="string">CONTEND</member>
<member path="Swap.1.'stream#2.Schedule'" source="0" type="string">CONTEND</member>
<member path="Swap.1.'stream#3.Schedule'" source="0" type="string">CONTEND</member>
</members>
</dealings>
</XML>
,我需要做一个转换为除了改变内容,得到数流#之后的节点的名称来使用,让这样的事情:
<XML>
<flows-1>
CONTEND
</flows-1>
<flows-2>
CONTEND
</flows-2>
<flows-3>
CONTEND
</flows-3>
</XML>
我没有得到正确的方式来获得的数量。得到的数量,而不是单为了或猜测这是很重要的,因为数量可能不按顺序连续或甚至1
答
这个样式表开始:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<XML>
<xsl:apply-templates/>
</XML>
</xsl:template>
<xsl:template match="member">
<xsl:element name="flows-{substring-before(substring-after(@path,'#'),'.')}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
结果(正确)输出:
<XML>
<flows-1>CONTEND</flows-1>
<flows-2>CONTEND</flows-2>
<flows-3>CONTEND</flows-3>
</XML>
好答案(+1)。 – 2010-07-07 22:29:16