我有如下所示的 XML:
<StartTag>
<MyValueTag>And the value itself contains a < bracket that makes the XML invalid</MyValueTag>
</StartTag>
XML 包含使 XML 无效的“<”字符。
现在最简单的方法是修复 XML 的源,但不幸的是我无法控制 XML 的创建。它有类似“The value is < than 10”的消息,假设是“小于”。
无论如何,我如何检查 XML 中的此类内容并转义这些字符?
我试着看这篇文章,那个人指出我们应该使用 JTidy。但是当我尝试它时,它并没有删除 <:
Tidy tidy = new Tidy();
tidy.setInputEncoding("UTF-8");
tidy.setOutputEncoding("UTF-8");
tidy.setWraplen(Integer.MAX_VALUE);
tidy.setPrintBodyOnly(true);
tidy.setXmlOut(true);
tidy.setSmartIndent(true);
ByteArrayInputStream inputStream = new ByteArrayInputStream(data.getBytes("UTF-8"));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
tidy.parseDOM(inputStream, outputStream);