Пример XML-анализатора Java - PullRequest
       30

Пример XML-анализатора Java

2 голосов
/ 28 декабря 2011

enter code here Я должен десериализовать этот XML:

<rows profile="color">
    <head>
        <columns>
            <column width="0" align="left" type="ro" sort="str" color=""><![CDATA[#]]></column>
            <column width="80" align="left" type="ro" sort="str" color=""><![CDATA[Targa]]></column>
            <column width="100" align="left" type="ro" sort="str" color=""><![CDATA[Telaio]]></column>
            <column width="150" align="left" type="ro" sort="str" color=""><![CDATA[Tipo]]></column>
            <column width="70" align="left" type="ro" sort="str" color=""><![CDATA[Archivio]]></column>
            <column width="220" align="left" type="co" sort="str" color=""><![CDATA[Commenti]]><option value="A">A</option><option value="B">B</option><option value="C">C</option></column>
            <column width="180" align="left" type="ed" sort="str" color=""><![CDATA[Destinatario]]></column>
        </columns>
    </head>
    <row>
        <cell><![CDATA[775]]></cell>
        <cell><![CDATA[AA000AA]]></cell>
        <cell><![CDATA[RTGGSHHJSJSNN]]></cell>
        <cell><![CDATA[CDP]]></cell>
        <cell><![CDATA[18]]></cell>
        <cell><![CDATA[...]]></cell>
        <cell><![CDATA[Â ]]></cell>
    </row>
</rows>

Но у меня нет определенного класса, как я могу это сделать? Я бы использовал библиотеку xstream, но я не знаю, как ее использовать.

EDIT:

Но если я хочу создать целевой класс, как я его создаю? У меня должно быть что-то вроде:

public class Rows { 
    private Head head; 
    private Row[] row; 
}

public class Head { 
    private Columns columns;
} 

public class Columns {
    private Column column; // How can I get attributes?
}

public class Row {
    private String [] cell;
}

и как я могу использовать xstream после?

Ответы [ 3 ]

2 голосов
/ 28 декабря 2011

Посмотрите на JAXB.(http://jaxb.java.net/)

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

Некоторые примеры: http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/JAXBUsing3.html

Hello World: http://jaxb.java.net/tutorial/section_1_3-Hello-World.html

0 голосов
/ 28 декабря 2011

Использование SAX

SAX-парсер работает по-разному с DOM-парсером, он либо загружает любой XML документ в память, ни создать какое-либо объектное представление XML документ. Вместо этого парсер SAX использует функцию обратного вызова (org.xml.sax.helpers.DefaultHandler) для информирования клиентов о XML структура документа.

если вы хотите создать класс из XML, используйте Digester

Пример

0 голосов
/ 28 декабря 2011

Поскольку у вас нет целевого класса, который XStream может десериализовать, вам придется использовать другие анализаторы XML.

Вы можете взглянуть на StAX . Вы можете найти, как использовать это здесь и здесь .

...