【发布时间】:2021-10-29 22:22:05
【问题描述】:
您好,我发现 apache 运算符非常有用
StringUtils.substringBetween(fileContent, "<![CDATA[", "]]>")
提取里面的信息
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<envelope>
<xxxx>
<yyyy>
<![CDATA[
<?xml version="1.0" encoding="UTF-8" ?>
<Document >
<eee>
<tt>
<ss>zzzzzzz</ss>
<aa>2021-09-09T10:39:29.850Z</aa>
<aaaa>
<Cd>cccc</Cd>
</aaaa>
<dd>ssss</dd>
<ff></ff>
</tt>
</eee>
</Document>
]]>
</yyyy>
</xxxx>
</envelope>
但现在我正在寻找的是另一个允许我替换动态 xml 的运算符或正则表达式
![CDATA["old_xml"]]
通过另一个 xml
![CDATA["new_xml"]]
知道如何实现这一点吗?
问候。
【问题讨论】:
-
这很好用......直到你有一个包含两个 CDATA 部分的 XML,一个接一个。正如过去十年在本网站上great and passionate length 所讨论的那样,正则表达式绝对是用于处理任意 XML、HTML、JSON 等的错误工具。您需要一个真正的解析器来处理您正在处理的任何风格。 “有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。 -- Jamie Zawinski
-
100% 同意,但我只从 CDATA 中提取“文本”,一旦我使用 DOM 解析器提取文本
-
如果您坚持使用正则表达式,请准备好在您最不期望的时候它会崩溃。也准备被任何维护它的人诅咒。
-
这个想法终于被否决了XD
标签: java regex apache-utils