这就是我的xml的样子:
<pkt>
<row name="ARENDEN" actn="M">
<col name="ARNR" type="num" val="82844316"/>
<col name="KUNDNR" type="num" val="290125"/>
</row>
</pkt>
我编写了一个XSLT样式集,将其转换为
<col>ARNR</col>
<col>KUNDNR</col>
但ARNR
应代替tag,basicaly标签应使用列名动态定义,val
将是source-example的值。
<ARNR>82844316</ARNR>
有人可以帮忙吗?
答案 0 :(得分:2)
示例XML输入:
<?xml version="1.0" encoding="utf-8"?>
<root>
<pkt>
<row name="ARENDEN" actn="M">
<col name="ARNR" type="num" val="82844316"/>
<col name="KUNDNR" type="num" val="290125"/>
</row>
</pkt>
<pkt>
<row name="HEINZ" actn="M">
<col name="HNZ" type="num" val="465798"/>
<col name="PRODNR" type="num" val="321654"/>
</row>
</pkt>
</root>
XSLT样式表:
<?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"/>
<xsl:template match="/">
<output>
<xsl:apply-templates select="root/pkt/row"/>
</output>
</xsl:template>
<xsl:template match="row">
<entry>
<xsl:apply-templates select="col"/>
</entry>
</xsl:template>
<xsl:template match="col">
<xsl:element name="{@name}">
<xsl:value-of select="@val"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
输出:
<?xml version="1.0" encoding="utf-8"?>
<output>
<entry>
<ARNR>82844316</ARNR>
<KUNDNR>290125</KUNDNR>
</entry>
<entry>
<HNZ>465798</HNZ>
<PRODNR>321654</PRODNR>
</entry>
</output>