【发布时间】:2015-07-18 12:15:41
【问题描述】:
我有一个包含以下内容的 XML 文档:
<d1/>
<p1>...</p1>
<p2>...</p2>
<d2/>
<p3>...</p3>
<d3/>
其中 pn 是可能包含子元素和其他内容的元素,而 dn 指示包装 p 标签的 HTML DIV 标记应该从哪里开始,但没有相应的结束标记,这仅由下一个 dn 标记隐式指示。所需的 HTML 输出是这样的:
<div>
<p1>...</p1>
<p2>...</p2>
</div>
<div>
<p3>...</p3>
</div>
我编写了一个 XSLT 来动态引入 <div> 和 </div> 标签,使用以下代码:
<xsl:text disable-output-escaping="yes"><div></xsl:text>
和
<xsl:text disable-output-escaping="yes"></div></xsl:text>
这在 Safari 上有效,但在 FireFox 上失败,这让我怀疑这不是正确的方法。 您是否有更好的想法适用于所有浏览器?
非常感谢。
【问题讨论】:
-
标签的编号真的和你显示的一样吗?如果是,您真的要在输出中保留
p标记的编号吗? -
不,这只是一个例子。它是不同标签的混合。
-
那么究竟如何识别“divider”标签呢?
-
分隔标签是这样的,我说的是p标签。
-
这并不能真正回答我的问题。这里的问题是
*[starts-with(name(), 'd')](Martin Honnen 和我都使用过)是否选择 only 分隔符标签。 -- 也不清楚你想如何处理其他节点;两个答案(现在)都假设您要按原样复制它们。