【问题标题】:How to partially transform xml using xslt?如何使用 xslt 部分转换 xml?
【发布时间】:2015-11-25 21:47:41
【问题描述】:

我正在尝试进行一些 XML 数据迁移,将 xml 文档从一个模式迁移到另一个更新版本。变化并不大,所以我想知道 xslt 是否有一种简单的方法来只转换部分 xml。例如仅重命名元素名称等。

【问题讨论】:

  • 基本上,这是答案here

标签: xml xslt


【解决方案1】:

XSLT 接受一个输入文档并创建一个新的输出文档。至于进行小的更改,是的,使用身份转换模板开始您的样式表,并为更改添加更具体的模板,例如

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<!-- identity transformation template -->
<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

<!-- rename foo to bar elements -->
<xsl:template match="foo">
  <bar>
    <xsl:apply-templates select="@* | node()"/>
  </bar>
</xsl:template>

</xsl:stylesheet>

【讨论】:

  • 如果您使用 XSLT 2.0 并且有很多规则涉及重命名单个元素(并且没有其他更改),您可以更进一步,在全局变量中定义映射并编写处理所有这些的模板。
猜你喜欢
  • 2011-02-05
  • 2013-12-06
  • 1970-01-01
  • 2019-05-30
  • 2021-12-22
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 2011-08-29
相关资源
最近更新 更多