Разбор XML в JAVA SAX, без заполнения атрибутов по умолчанию - PullRequest
2 голосов
/ 08 ноября 2011

Я пытаюсь проанализировать данный XML с DTD, используя javax.xml.parsers.SAXParser.Но я просто не хочу, чтобы атрибуты по умолчанию заполнялись на основе DTD.Поэтому я попытался установить setFeature для SAXParserFactory, как описано в http://xerces.apache.org/xerces2-j/features.html#nonvalidating.load-dtd-grammar:

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

Но, похоже, это не работает!Я все еще получаю вывод с заполненными атрибутами по умолчанию!Не могли бы вы дать мне знать, как это исправить?

1 Ответ

1 голос
/ 08 ноября 2011

У вас есть ответ прямо перед вашими глазами.По общей ссылке:

True: загрузить DTD и использовать его для добавления атрибутов по умолчанию и установки типов атрибутов при разборе.

False: создание грамматики, но не использоватьатрибуты по умолчанию и информация о типах атрибутов, которые он содержит.

Таким образом, вы должны запустить его с этой функцией, установленной в false:

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