0

我有一个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>在搜索和替换时跳过元素。

任何帮助表示赞赏。提前致谢。

4

1 回答 1

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>

要返回搜索“标签”的成功,那么您将需要一个更复杂的解决方案。

于 2012-09-18T16:24:24.477 回答