Вопрос по разбору XML - PullRequest
       1

Вопрос по разбору XML

0 голосов
/ 13 апреля 2010

Когда я анализирую строку xml, как показано ниже, я получаю странные атрибуты, такие как «autowire» со значением «default». Есть ли в любом случае я могу получить только те атрибуты, которые явно определены?

<bean id="aaaa" class="com.test.Service">
     <property name="cccc" ref="cccc"/>
</bean>

Я делаю простой анализ, превращая его в Document, а затем перебираю узлы.

Document document = docBuilder.parse(input);
NodeList nodeList = document.getChildNodes(); 
etc.

Ответы [ 2 ]

3 голосов
/ 13 апреля 2010

Вы можете использовать следующие API, чтобы определить, явно ли указан атрибут:

если вы используете DOM: Attr.getSpecified ()

если вы используете SAX: Attributes2.isSpecified (QName)

2 голосов
/ 13 апреля 2010

Это зависит от того, что вы используете для анализа. Я предполагаю, что это файл конфигурации Spring bean. Обычно с этим связана XML-схема, которая определяет все значения по умолчанию для атрибутов.

Таким образом, когда настоящий синтаксический анализатор XML проходит по документу, он создаст какое-то представление (анализаторы DOM, очевидно, создадут дерево, анализаторы SAX запустят события и т. Д.) XML и вставят эти значения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...