Saxparser无法解析HTML数字字符引用。问号显示

时间:2012-05-17 04:01:42

标签: java xml-parsing saxparser

我正在尝试解析一个包含 - 和&#8217数字字符引用的xml。在解析它时,我输出为“?”。不仅仅是这两个,xml中的任何HTML / XMl数字字符引用都会产生此问题。只有预先定义的实体才被saxparser

接受

我使用defaulthandler saxparser。 system out in character方法向我显示了数字字符引用的问号。

我做了大量的谷歌搜索,到处都看到使用数字字符引用不应该造成任何问题。

任何帮助?

1 个答案:

答案 0 :(得分:0)

字符方法中的

System.out向我显示数字字符引用的问号。

这听起来像是输出/控制台的字符编码问题。 以下适用于JSE 7

public static void main(String [] args)throws Exception {         SAXParser解析器=                 。SAXParserFactory.newInstance()newSAXParser();

    XMLReader reader = parser.getXMLReader();
    reader.setContentHandler(new ContentHandler() {

        // other methods omitted 

        @Override
        public void characters(char[] ch, int start, int length)
                throws SAXException {
            System.out.println(new String(ch, start, length));

        }
    });

    FileReader fReader = new FileReader("/tmp/HelloWorld.xml");
    reader.parse(new InputSource(fReader));
    fReader.close();
}

使用XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<Test>
Hello World&#8217;
</Test>

输出:Hello World'

您是否尝试使用调试器查看incomming字符数组?