Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > DOM-парсер не находит теги


Автор: jk1 12.2.2010, 14:40
Добрый день,

Необходимо распарсить xml-документ с помошью DOM-парсера. Именно DOM, поэтому другие методы прошу не предлагать. 
Использую стандартный парсер из Sun JDK 1.6u17, фабрику конфигурирую так:
Код

private static final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
...
factory.setIgnoringComments(true);
factory.setValidating(true);
factory.setIgnoringElementContentWhitespace(true);
factory.setCoalescing(true);

Пример входного XML
Код

<?xml version="1.0" encoding="windows-1251" standalone="no"?>
<!DOCTYPE document SYSTEM "./web/1c2oracle.dtd">
<document>
    <report>
        <head>
            <id>1</id>
            <date>12.02.2010</date>
        </head>
        <data>
            <line>
                <field>0000000001</field>
                <field>0000000002</field>
            </line>
        </data>
    </report>
</document>
 
И соответствующей DTD схемы
Код

<!ELEMENT document (report)>
<!ELEMENT report (head,data)>
<!ELEMENT head (id,date)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT data (line*)>
<!ELEMENT line (field*)>
<!ELEMENT field (#PCDATA)>


Разбор происходит так:
Код

DocumentBuilder builder = factory.newDocumentBuilder();
// docSource - InputStream с файлом            
Document doc = builder.parse(docSource);
NodeList ids = doc.getElementsByTagName("date");
NodeList dates= doc.getElementsByTagName("id");


Проблема в том, что списки оказываются пустыми. Как же добраться до этих тегов?

заранее спасибо.

Автор: LSD 15.2.2010, 17:44
У меня все нормально, список как и положено содержит один элемент.

Автор: jk1 16.2.2010, 09:57
Спасибо за участие.
Решил проблему переустановкой JDK.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)