我有一个xml字符串,如下所示
<root>
<A id="1">This is an example</A>
<B id="2">
<C id="3">this is tag c</C>
</B>
<D id="4">this is tag d</D>
<E id="5">
<F id="6">this is tag f</F>
<G id="7">this is tag g</G>
.
.
.
</E>
</root>
这里我只想搜索单词tag
并使用正则表达式(正则表达式)将其替换为Xml Tag
,我不想在元素<E>...</E>
内搜索该单词,即我想在搜索和替换时跳过元素<E>...</E>
。
感谢任何帮助。 提前谢谢。
答案 0 :(得分:2)
执行此操作的最简单方法因您的环境和您的意思而异,具体而言,您希望跳过元素E.在XSLT或XQuery中,一种查找与正则表达式匹配的文本节点的简单方法E元素将是
//text()[not(ancestor::E)][matches(.,'tag')]
在其他环境中,做一些类似的事情可能会也可能不方便。
请注意,如果“跳过元素E”表示您需要表单内容
<A>This is a tricky example
of the word t<E>hi, mom!</E>ag.</A>
要在搜索“tag”时返回一个匹配,那么您将需要一个更复杂的解决方案。