我想将.<br />
替换为.<p/>
或其他标签。我想保持我的文本和其他标签不变。例如:
<div class="page">
<div class="text">
adsdfasdf<br/>sadasdsafg<br/>kkot.<br/>
<div class="pagenumber">3</div>
</div>
</div>
答案 0 :(得分:2)
要解决标题中的问题(找到它),找到以点结尾的所有文本节点,获得第一个以下兄弟节点(如果查找下一个节点,我们也会返回<div>foobar.</div><br/>
之类的节点)并测试它是否是<br/>
节点(在这种情况下,只测试名称,我不在这里检查空虚)。
//text()[ends-with(., '.')]/following-sibling::node()[1]/self::br
重命名节点 - 您在问题正文中要求的内容 - 如下所示:
rename node //text()[ends-with(., '.')]/following-sibling::node()[1]/self::br as 'p'
重命名当然需要XQuery Update。只发现该节点也适用于任何XQuery 1.0甚至XPath 2.0处理器。