我正在尝试使用 Stax 编写 XML 数据,其中内容本身是 HTML
如果我尝试
xtw.writeStartElement("contents");
xtw.writeCharacters("<b>here</b>");
xtw.writeEndElement();
我明白了
<contents><b>here</b></contents>
然后我注意到 CDATA 方法并将我的代码更改为:
xtw.writeStartElement("contents");
xtw.writeCData("<b>here</b>");
xtw.writeEndElement();
这次结果是
<contents><![CDATA[<b>here</b>]]></contents>
这仍然不好。我真正想要的是
<contents><b>here</b></contents>
那么是否有一个 XML API/Library 允许我在不进入 CDATA 部分的情况下编写原始文本?到目前为止,我已经查看了 Stax 和 JDom,但他们似乎没有提供这个。
最后,我可能会求助于好的旧 StringBuilder ,但这并不优雅。
更新:
到目前为止,我大多同意答案。但是,<b>here</b>
我可以有一个 1MB 的 HTML 文档,而不是我想嵌入到更大的 XML 文档中。你的建议意味着我必须解析这个 HTML 文档才能理解它的结构。如果可能的话,我想避免这种情况。
回答:
这是不可能的,否则您可能会创建无效的 XML 文档。