如果我有如下所示的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
<CD ID="1">
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD ID="2">
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>31</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>我如何在每个价格元素中添加1000的值,这样就有一个类似于当前值+ 1000的和,使用xslt-3?输出:
<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
<CD ID="1001">
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>1010</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD ID="1002">
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>1031</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>发布于 2018-03-05 14:51:34
如果您为PRICE元素编写了一个模板,并通过xsl:mode on-no-match="shallow-copy" (https://www.w3.org/TR/xslt-30/#built-in-templates-shallow-copy)处理其余的元素,那么
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="3.0">
<xsl:param name="to-be-added" as="xs:decimal" select="1000"/>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="PRICE">
<xsl:copy>
<xsl:value-of select=". + $to-be-added"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>https://stackoverflow.com/questions/49112826
复制相似问题