【发布时间】:2015-03-30 19:47:07
【问题描述】:
我的问题是我想从 100000 开始将元素标签“BOOKSEQNUM”的值自动增加 10, 请看下面,我已经输入了输入代码、输出代码(我的 XSLT 附带)、XSLT 代码和它应该出现的输出。 如果这在 XSLT 中可行,你能帮我吗?我已经搜索了它的解决方案,但没有找到任何东西。
输入文件:
<?xml version="1.0" encoding="utf-8"?>
<r id="TYPL.HB001">
<COMM>
<commbody>
<level id="comchap">
<level id="TTPL_Z9.0002">
<level id="TTPL_Z9.0003"/>
</level>
<level id="TTPL_Z9.0004.para0">
<level id="TTPL_Z9.0005" >
<level id="TTPL_Z9.0006"/>
<level id="TTPL_Z9.0016"/>
<level id="TTPL_Z9.0022"/>
<level id="TTPL_Z9.0031">
<level id="TTPL_Z9.0041"/>
</level>
</level>
<level id="TTPL_Z9.0046">
<level id="TTPL_Z9.0047"/>
<level id="TTPL_Z9.0058"/>
<level id="TTPL_Z9.0063">
</level>
</level>
</level>
</level>
</commbody>
</COMM>
</r>
XSLT 代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="//level"/>
</xsl:template>
<xsl:template match="level">
<xsl:variable name="BSN_Number">100000</xsl:variable>
<xsl:element name="BOOKSEQNUM">
<xsl:attribute name="id" select="./@id"/>
<xsl:for-each select=".">
<xsl:value-of select="$BSN_Number+10"/>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
即将输出:
<BOOKSEQNUM id="comchap">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0002">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0003">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0004">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0005">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0006">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0016">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0022">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0031">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0041">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0046">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0047">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0058">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0063">100010</BOOKSEQNUM>
但我希望输出应该是这样的:
<BOOKSEQNUM id="comchap">100010</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0002">100020</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0003">100030</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0004">100040</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0005">100050</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0006">100060</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0016">100070</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0022">100080</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0031">100090</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0041">1000100</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0046">1000110</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0047">1000120</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0058">1000130</BOOKSEQNUM>
<BOOKSEQNUM id="TTPL_Z9.0063">1000140</BOOKSEQNUM>
【问题讨论】:
标签: xml xslt xslt-1.0 xslt-2.0