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


Автор: Авенгер 12.5.2011, 10:31
Привет!
Столкнулся со следующей задачей:
Нужно распарсить XML файл так, чтоб не терялась последовательность тегов, т.е к примеру есть следующий XML:
Код

<test tag="TC-1" description="Test">
    <testAction node="A">
        <action name="server" action="restart"/>
        <set name="link" attr="linkCode" value="0"/>
    <testAction/>
<test/>

Нужно из <testAction> вытащить все вложенные теги в соответствии с их последовательностью(не однозначна) в XML, а затем исходя из типа этих тегов вызывать различные методы. 
пытаюсь делать с помощью "selectPath", но насколько я понял этот метод возвращает массив типа XmlObject.
а мне бы нужно сохранить исходный тип каждого тега(сформированный на основе XSD).
Подскажите пожалуйста, может есть варианты сохранения последовательности и типа? 

Автор: MisterCleric 12.5.2011, 11:31
http://www.google.com/search?q=xslt

Автор: Авенгер 12.5.2011, 11:39
Забыл сразу сказать....
пользуюсь xmlBeans, использовать что-то другое нет возможности.
а я так понял,что xslt это альтернатива xsd и нужно другое ПО

Автор: MisterCleric 12.5.2011, 12:11
Нет, xslt - это инструмент, который позволяет из одного XML сделать другой, без каких-либо "анмаршвализаций" в Java, а потом обратно, как ты проводишь пример.

Автор: LSD 12.5.2011, 12:16
А разве XmlBeans не сохраняет последовательность тегов?

Автор: Авенгер 12.5.2011, 12:45
я имею ввиду уже после парсинга всего xml, нужно вытащить последовательность из конкретного блока. если пользоваться методами вроде "getClassArray()", то у меня получится массив типа Class и в нем будут все теги этого типа встречающиеся в данном блоке(соответственно теряется последовательность)
задача моя стоит в написании парсера, который на основе тегов из xml вызывает различные методы. все это делается для того, чтоб однажды написать код, а в дальнейшей просто накидывать сценарии тестов в виде xml файлов. 

Автор: MisterCleric 12.5.2011, 13:01
А почему не воспользоваться какими-то уже существующими тулзами:
http://www.google.com/search?q=testng
Или если уж хочется скриптами побаловаться:
http://www.google.com/search?q=groovy+testing

Автор: Авенгер 12.5.2011, 13:14
с радостью бы воспользовался, но работаю в рамках уже написанного ОГРОМНОГО фреймверка, так что приходится делать так как делаю.  smile 

Автор: LSD 12.5.2011, 14:02
Покажи схему?

Автор: Авенгер 12.5.2011, 14:12
спасибо за помощь!!! схему завтра покажу, работаю на удаленных машинах, копи/паст на локальную не работает, придется ручками печатать!

Автор: Авенгер 13.5.2011, 09:39
Вот схема(упрощенная, но отражающая суть):
http://saveimg.ru/show-image.php?id=c5815f2b1dbecaa6621db0290777a8c2
печатать вломsmile

Автор: LSD 13.5.2011, 14:04
Мне схема нужна была, чтобы скомпилить по ней XmlBeans, сам я ее набирать тоже не буду. Не обязательно вся схема, просто пример демонстрирующий проблему.

Автор: Авенгер 17.5.2011, 08:26
Решил проблему переписав XSD. теперь не создаю отдельный класс для тегов, а использую один тег "action" но с разными атрибутами. Спасибоsmile

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