我需要将 xml/html 文件转换为 dita 文件。我想删除一些节点但保留他们的孩子。困难在于:
我要删除的节点具有属性。我得到错误:
不能在包含元素的子元素之后创建属性节点(类)
而这些属性是不可预知的:我要移除各种节点,我无法预测它们有哪些属性。
我不知道节点嵌套的深度。它可能是其他节点的直接子节点,也
<body>
可能嵌套在其他节点内的 4 或 5 层。
XML 示例:
<macro name="section">
<rich-text-body>
<macro name="column">
<parameter name="width">80%</parameter>
<rich-text-body>
<p>horribly nested, <span>bulky</span> structure</p>
<div>horribly nested, <span>bulky</span> structure</div>
</rich-text-body>
</macro>
</rich-text-body>
</macro>
我想删除笨重的宏标签,但只保留最内部的<rich-text-body>
. 在这种情况下,它们是<p>
<div>
标签。
这是我得到的。XSLT _
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="macro[@name='column' and parameter[@name='width'] ='80%']">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
任何帮助表示赞赏!谢谢!