kaz*_*aki 9 java xml stax escaping
我正在尝试使用Stax编写XML数据,其中内容本身是HTML
如果我试试
xtw.writeStartElement("contents");
xtw.writeCharacters("<b>here</b>");
xtw.writeEndElement();
Run Code Online (Sandbox Code Playgroud)
我明白了
<contents><b>here</b></contents>
Run Code Online (Sandbox Code Playgroud)
然后我注意到CDATA方法并将我的代码更改为:
xtw.writeStartElement("contents");
xtw.writeCData("<b>here</b>");
xtw.writeEndElement();
Run Code Online (Sandbox Code Playgroud)
这次结果是
<contents><![CDATA[<b>here</b>]]></contents>
Run Code Online (Sandbox Code Playgroud)
这仍然不好.我真正想要的是
<contents><b>here</b></contents>
Run Code Online (Sandbox Code Playgroud)
那么是否有一个XML API /库允许我在不加入CDATA部分的情况下编写原始文本?到目前为止,我已经看过Stax和JDom了,他们似乎没有提供这个.
最后我可能会选择好的旧StringBuilder,但这不会很优雅.
更新:
到目前为止,我主要同意答案.但是,<b>here</b>
我可以将1MB HTML文档嵌入到更大的XML文档中.你的建议意味着我必须解析这个HTML文档才能理解它的结构.如果可能的话,我想避免这种情况.
回答:
这是不可能的,否则您可能会创建无效的XML文档.
问题是这不是原始文本,它是一个元素,所以你应该写
xtw.writeStartElement("contents");
xtw.writeStartElement("b");
xtw.writeCData("here");
xtw.writeEndElement();
xtw.writeEndElement();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2562 次 |
最近记录: |