0

我正在尝试解析一个包含 - 和 ’ 数字字符引用的 xml。在解析它给我输出为“?”。不仅是这两个,xml 中的任何 HTML/XML 数字字符引用都会产生此问题。saxparser 只接受预定义的实体

我使用默认处理程序 saxparser。system out in character 方法向我显示数字字符引用的问号。

我做了很多谷歌搜索,到处我看到数字字符引用的使用不应该产生任何问题。

有什么帮助吗?

4

1 回答 1

0

System.outin character 方法向我显示数字字符引用的问号。

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

public static void main(String[] args) throws Exception{ SAXParser parser = 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'</p>

您是否尝试过使用调试器查看传入的字符数组?

于 2012-05-17T04:32:31.140 回答