首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xslt-3向元素添加一个数值。

使用xslt-3向元素添加一个数值。
EN

Stack Overflow用户
提问于 2018-03-05 14:35:40
回答 1查看 42关注 0票数 1

如果我有如下所示的xml文件:

代码语言:javascript
复制
<?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?输出:

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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)处理其余的元素,那么

代码语言:javascript
复制
<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://xsltfiddle.liberty-development.net/6qM2e2j

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49112826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档