我正在使用dom4j来解析我的xml。比方说,我有这样的事情:dom4j将文本转换为特殊字符
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>ƒ</bar>
</foo>
当在看“巴”节点的值,它给我回特殊字符为代表“&#402;”
有没有办法来防止这种情况,只是在文本的实际位读?
我正在使用dom4j来解析我的xml。比方说,我有这样的事情:dom4j将文本转换为特殊字符
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>ƒ</bar>
</foo>
当在看“巴”节点的值,它给我回特殊字符为代表“&#402;”
有没有办法来防止这种情况,只是在文本的实际位读?
文本的实际位是ƒ
?那么你需要跳过&符号&
。
如果bar
节点的值本身包含<或>或&,则会破坏解析器。为了防止这种情况发生,您应该在途中将所有数据都转义出来,然后在途中再次取消注释。
这将您的文档到:
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>&#402;</bar>
</foo>
它不吸,但对你的XML。
如果您需要此保留数字字符引用像&#nnnn
或字符实体引用像&something
同时读写XML文件,您可以:
&
例如[$AMPERSAND_CHARACTER$]
我试过,但是,当写入输出xml时,我仍然只想显示“&”符号而不是“&”文本。当然,我可以通过输出文件解析并在文本编辑器中手动将“&”转换为“&”,但我希望不必这样做。 – digiarnie 2009-07-20 01:18:42
那么,阅读和写作是有区别的。为了写作,你可以在org.dom4j.io.XMLWriter上调用setEscapeText(false)来逐字写出你所写的任何内容。如果你这样做,请记住,你的阅读/写作周期将改变文件,所以你必须小心。 – ChssPly76 2009-07-20 04:23:14