xml - 如何使用 XSLT 1.0 将 XML 节点分成 2 个节点
问题描述
我有一个带有子元素的 XML 节点,我需要将其分成两个像这样的东西
<node margin="5pt" color="red">with some text and <seperator/> where the element continues</node>
结果应该是
<node margin="5pt" color="red">with some text and </node>
<node margin="5pt" color="red">where the element continues</node>
解决方案
下面的 XSLT 1.0 样式表将拆分内容并生成单独node
的元素,其内容是元素text()
的兄弟seperator
(拼写错误)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="seperator"/>
<xsl:template match="node/text()[preceding-sibling::seperator or following-sibling::seperator]">
<xsl:element name="{name(..)}">
<xsl:copy-of select="../@*|."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
推荐阅读
- python - 以全尺寸保存 matplotlib 图表
- android - 如何在每个回收站视图项上放置进度条?
- python-3.x - 使用位于另一个 python 文件中的多个参数调用函数时出错
- javascript - 通过 ajax-id 获取服务成本传递 id 的 Ajax 请求正在传递,但成本不会显示
- javascript - 'no-use-before-define' 出于什么目的警告声明的函数?
- java - H2 创建链接表 - 找不到驱动程序类
- sql - 如何在 SQL 中根据月份将一行拆分为 12 行?
- java - 如何使用 Student 类对象访问 Department 类的方法
- firebase - 在 Kotlin 中将长字符串转换为 Int
- java - Vaadin EntityManager NullReferenceException