【发布时间】:2019-02-08 01:41:18
【问题描述】:
我正在尝试将带有<br/> 元素的<p> 元素转换为多个<alinea>subtext</alinea>。例如:
<p>subtext<br/>some more text<br/> some more subtext</p>
由于<p> 的模板已经打开了<alinea> 元素,所以我希望从之前的<p> 简单地将所有<br/> 替换为</alinea><alinea>。
<xsl:template match="p">
<para><alinea><xsl:apply-templates/></alinea></para>
</xsl:template>
<xsl:template match="br">
</alinea><xsl:apply-templates/><alinea>
</xsl:template>
但它没有验证。
预期结果:
<para>
<alinea>
subtext
</alinea>
<alinea>
some more text
</alinea>
<alinea>
some more subtext
</alinea>
</para>
【问题讨论】:
-
您能提供输入 XML 吗?
-
在问题中完成。谢谢。
-
如果输入的 XML 包含其他元素怎么办,例如:
<p>subtext<br/>some more text<br/> some more subtext <div>abc</div></p>? -
似乎有效,我只想为
<div>添加一个模板:xsltfiddle.liberty-development.net/jyH9rMD/1 -
此类问题应标记为“xslt 1.0”或“xslt 2.0”。使用 2.0 构造的解决方案通常要容易得多,但并不是每个人(遗憾的是)都可以使用 XSLT 2.0(或 3.0)处理器。
标签: xslt xpath xslt-2.0 line-breaks