在JAVA SAX中解析XML,而不填充默认属性

时间:2011-11-08 15:18:19

标签: java xml sax

我正在尝试使用javax.xml.parsers.SAXParser针对DTD解析给定的XML。但是,我只是不希望基于DTD填充默认属性。所以我按照http://xerces.apache.org/xerces2-j/features.html#nonvalidating.load-dtd-grammar

中的描述尝试了SAXParserFactory的setFeature
SAXParserFactory fact = SAXParserFactory.newInstance();
fact.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);

但是,它似乎不起作用!我仍然得到填充了默认属性的输出!能告诉我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

你的答案就在眼前。从您分享的链接:

  

True:加载DTD并使用它添加默认属性并设置   解析时的属性类型。

     

错误:构建语法但不是   使用默认属性和属性类型信息吧   包含。

因此,您应该将该功能设置为false运行它:

SAXParserFactory fact = SAXParserFactory.newInstance(); fact.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);