【发布时间】:2011-11-08 15:18:18
【问题描述】:
我正在尝试使用 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);
但是,它似乎不起作用!我仍然得到填充了默认属性的输出!请告诉我如何解决这个问题?
【问题讨论】:
-
我已经更新了我原来的问题。之前 load-dtd-grammar 的值设置为 true;这是一个错字,我的错!无论我为此功能设置什么值(真/假),该程序都不起作用。
-
您确定您使用的是 xerces 解析器吗?
-
最后我为此编写了自己的解析器,它运行良好。大概我会把它放在 github/sourceforge 中。