也许这是一个n00b问题。
我尝试解析像这样的xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<test>
<a></a>
</test>
使用以下代码:
public static void parse(File f) {
final DefaultHandler handler = new DefaultHandler() {
@Override
public void processingInstruction(String target, String data) throws SAXException {
System.out.println("Processing Instruction");
}
};
SAXParserFactory.newInstance().newSAXParser().parse(f, handler);
}
我希望输出"Processing Instruction"
打印在stdout上。但这不会发生。有人可以告诉我为什么吗?
答案 0 :(得分:1)
来自JavaDoc:
SAX解析器绝不能使用此方法报告XML声明(XML 1.0,第2.8节)或文本声明(XML 1.0,第4.3.1节)。
据我了解,此方法不会报告/捕获<?xml version="1.0" encoding="UTF-8" ?>
行。尝试在xml代码中添加另一个处理指令并再次将其提供给解析器。