【问题标题】:XSL replace between html tagshtml标签之间的XSL替换
【发布时间】:2015-04-16 14:58:44
【问题描述】:

我想替换或删除 XML 节点中 html 标记之间的某些字符串,例如:

<description>
<![CDATA[<p>TEXT[…]</p>
    <p>The post <a rel="nofollow" href="http://somelink">test test</a> appeared first on <a rel="nofollow" href="http://somelink">TEXT2</a>.</p>
]]>
</description>

我想删除节点中的第二个&lt;p&gt;...&lt;/p&gt; 标签部分,或者更好的是用“MORE”替换

【问题讨论】:

  • 什么版本的 XSLT?你试过什么了?如果您使用的是 1.0 版,则无法一次性完成此操作。而且由于您正在处理 HTML,您可能无法相信它无论如何都会解析为有效的 XML...
  • 不幸的是 XSLT 1.0

标签: xml xslt


【解决方案1】:

我想去掉这第二个&lt;p&gt;...&lt;/p&gt;标签

CDATA 部分中没有标签;都是一串文本。试试:

<xsl:value-of select="substring-after(substring-before(description, '&lt;/p&gt;'), '&lt;p&gt;')"/>

【讨论】:

  • 谢谢你解决了我的问题。如果在 XSL 1.0 中当然可以的话,我也在考虑这样做。如果 CDATA 部分被视为一个字符串,那么可能是拆分文本并使用 […] 作为分隔符。然后只显示1个数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 2022-01-23
  • 2022-01-06
  • 1970-01-01
  • 2016-03-29
  • 2017-11-06
相关资源
最近更新 更多