【发布时间】:2023-02-22 09:51:57
【问题描述】:
我想将 XML 文档中的字符串 <ABCDEF> 替换为字符串 WXYZ(在 XML 文档中,运算符 < 替换为 <,运算符 > 替换为 >)。乍一看,只搜索 <ABCDEF> 的文档似乎很容易
不幸的是,在 XML 文档中,我看到 < 和 ABCDEF 之间以及 ABCDEF 和 > 之间有很多不相关的文本(所以基本上 XML 文档看起来像:<[garbage1]ABCDEF[garbage2]>
现在自然地,为了解决这个问题,我可以将 <[garbage1]ABCDEF[garbage2]> 替换为 WXYZ(这是我到目前为止所做的)。但我担心的是,如果[garbage1] 和[garbage2] 中的文本发生变化,那么我的搜索将失败并且字符串不会被替换。
因此,我想知道是否有办法保证更换 - 因为我正在搜索 <、ABCDEF 和 > 是否有办法以某种方式做到这一点?
【问题讨论】:
-
使用正则表达式正确地完成这种任务是非常困难的。建议使用 XML 解析器进行解析,然后遍历/转换节点,然后再次转储。
-
garbage1和garbage2是否有已知的最小和最大长度?