我正在尝试使用javax.xml.parsers.SAXParser针对DTD解析给定的XML。但是,我只是不希望基于DTD填充默认属性。所以我按照http://xerces.apache.org/xerces2-j/features.html#nonvalidating.load-dtd-grammar:
中的描述尝试了SAXParserFactory的setFeatureSAXParserFactory fact = SAXParserFactory.newInstance();
fact.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
但是,它似乎不起作用!我仍然得到填充了默认属性的输出!能告诉我如何解决这个问题吗?
答案 0 :(得分:1)
你的答案就在眼前。从您分享的链接:
True:加载DTD并使用它添加默认属性并设置 解析时的属性类型。
错误:构建语法但不是 使用默认属性和属性类型信息吧 包含。
因此,您应该将该功能设置为false运行它:
SAXParserFactory fact = SAXParserFactory.newInstance(); fact.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);