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


Автор: Samotnik 11.3.2008, 22:48
САБЖ!
Есть маленькое приложение на  AXIS   нужно прочитать файл (xml)  и отсортировать его !
Значит фал я прочитал,  вот кусок кода, который читает
Код

    SOAPBody body = mess.getSOAPBody();
         Iterator it = body.getChildElements();
         SOAPBodyElement bodyElement = (SOAPBodyElement)it.next();
         System.out.println("Here  u  XML" + bodyElement);

в  bodyElement   содержится сам весь   xml 
Нужно осортировать его содержимое
вот xml  (часть его)
Код

<goods>
        good ID="Brest">
            <type ID="Niva">
                <code>5</code>
                <adres>ul.Lenina 2</adres>
                <odnomest>34</odnomest>
                <dvumest>20</dvumest>
                <trehmest>10</trehmest>    
            </type>
            <type ID="Luch">
                <code>6</code>
                <adres>ul.Glebki 26</adres>
                <odnomest>10</odnomest>
                <dvumest>60</dvumest>
                <trehmest>30</trehmest>    
            </type>
        </good>
    </goods>

 smile 

Автор: Samotnik 12.3.2008, 02:18
Я чего - то  непонимаю ??  что то  неправильно делаю ?
 smile 

Автор: niasilil 12.3.2008, 06:49
У тебя же наверняка schema есть. Пользуй плагин Axis2 Code Generator чтобы сгенерировать код для клиента. 
Ну или вручную парсить xml,  в гугле примеров тьма тьмущая. 

Автор: Samotnik 12.3.2008, 13:11
Окей    забыли про все!  Особеннно про  AXIS
Предположим,  я какими - то космическими методами прочитал  xml  файл!      И записал его в какую - то переменную, допустим bodyElement
Т.е. bodyElement  содержит в  себе   весь  xml   документ 
Внимание вопрос,  у меня есть  вся  xml'ка   в bodyElement  как ее распарсить ??   Как прочитать  все значения от туда и записать их в коллекцию ??
 smile 

Автор: anglerhood 12.3.2008, 13:38
http://www.dom4j.org/guide.html
http://java.sun.com/j2ee/1.4/docs/tutorial-update6/doc/JAXPIntro.html 

Автор: mbasil 12.3.2008, 14:54
Использовать кмпилятор связывания схемы JAXB XJC, который трансформирует или связывает исходную схему с JAXB контентными классами языка Java. Компилятор xjc на платформе Solaris/Linux это файл  xjc.sh, а на платформе  Windows  это файл xjc.bat. Оба варианта принимают одни и те же опции командной строки. Вы можете вывести описание при использовании ключа -help. Синтаксис команды: 

xjc [-options ...] <schema>

В Tutorials EE глава 16 описывает как сделать Unmarshal из XML в сгенерированные классы. Теперь, в Java 6 все это работает в SE без дополнительных библиотек. Базовые примеры Tutorials: (Unmarshal Read, Modify Marshal, Unmarshal Validate) используют схему po.xsd. Примеры простые и работает все неплохо.

Автор: Eric_Cartman 12.3.2008, 20:44
Цитата(Samotnik @ 12.3.2008,  13:11)
... Как прочитать  все значения от туда и записать их в коллекцию ??

что касается этого вопроса, то логично копать в сторону
http://www.w3.org/TR/xpath и
http://jaxen.codehaus.org/

Автор: Samotnik 12.3.2008, 21:19
2 all
Почему   все советуют   xpath ???
Ведь можно обычным  DOM
типа 
Код

int с = document.getElementByTagName("goods");

а потом  с узлами работать !!  
Или нет ? 
я так пробывал, но чет не очень получилось ....   smile 

Автор: niasilil 13.3.2008, 03:50
ну раз сам не можешь у гугла спросить, помогу 
http://www.developerfusion.co.uk/show/2064/

Автор: 3Maestro3 15.3.2008, 08:25
Народ, помогите! Кажется функция jTablePanel.Add("имя объекта", "новое имя вкладки") изменяет имя вкладки (Title) панели jTablePanel. Как выглядит функция доступа, позволяющая прочитать это имя? Необходимо, что бы  переменная возвращалась с типом String.

Автор: powerOn 15.3.2008, 09:41
Цитата(3Maestro3 @  15.3.2008,  08:25 Найти цитируемый пост)
Народ, помогите! Кажется функция jTablePanel.Add("имя объекта", "новое имя вкладки") изменяет имя вкладки (Title) панели jTablePanel. Как выглядит функция доступа, позволяющая прочитать это имя? Необходимо, что бы  переменная возвращалась с типом String. 


какое отношение твой вопрос имеет к этой теме?

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