Синтаксический анализ XML с помощью java dom parser преобразует объявление xml в элементы - PullRequest
0 голосов
/ 13 ноября 2009

Вот XML-файл, который мне нужно обработать как часть моего задания.

<?xml-stylesheet type="text/xsl" href="people.xsl"?>
<People>
    <Person>
    `...`
    </Person>

    `...` 
</People>

Я использую javax.xml.parsers.DocumentBuilderFactory для создания dom-парсера. После синтаксического анализа в результирующем документе нет корневого элемента People, но есть корневой каталог с дочерними элементами в виде xml-stylesheet и People.

Похоже, этого можно избежать.

1 Ответ

1 голос
/ 13 ноября 2009

<?xml-stylesheet ... ?> не является декларацией XML. Это инструкция обработки (PI), и спецификация DOM гласит, что узел Document может содержать ноль или более из них.

Один из подходов состоит в том, чтобы закодировать ваше приложение для правильной обработки (например, игнорирования) PI в узле Document. В качестве альтернативы, просто используйте атрибут / getter узла Документа * 100, чтобы получить корневой элемент напрямую.

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