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


Автор: admin82 21.4.2009, 19:36
Господа, есть следующий вопрос.
Возможно ли и с какой стороны подобраться к следующей задаче.
Необходимо описывать xml документ как набор xpath выражений и затем строить по этому набору собственно xml документ. 
Т.е. на входе мы емеем что-то вроде такого набора:
Код

root/Bla/BlaKey/BlaID=CYP

root/Bla/BlaKey/BlaSynonym[1]/Codification=Internal
root/Bla/BlaKey/BlaSynonym[1]/Code=902

root/Bla/BlaKey/BlaSynonym[2]/Codification= Priority
root/Bla/BlaKey/BlaSynonym[2]/Code=14

root/Bla/BlaKey/BlaSynonym[3]/Codification=ISO
root/Bla/BlaKey/BlaSynonym[3]/Code= CYP

root/Bla/ShortName=sName
root/Bla/LongName=lName
root/Bla/ShowPriority=14


Должны получить 
Код

<root>
 <Bla>
  <BlaKey>
   <BlaID>CYP</BlaID>
   <BlaSynonym>
    <Code>902</Code>
    <Codification>Internal</Codification>
   </BlaSynonym>
   <BlaSynonym>
    <Code>14</Code>
    <Codification>Priority</Codification>
   </BlaSynonym>
   <BlaSynonym>
    <Code>CYP</Code>
    <Codification>ISO</Codification>
   </BlaSynonym>
  </BlaKey>
  <ShortName>sName</ShortName>
  <LongName>lName</LongName>
  <ShowPriority>14</ShowPriority>
 </Bla>
</root>


Как вам такая задачка? 
Естественно, атрибуты тоже могут быть

Автор: ecologist 24.4.2009, 07:58
Стандартных методов нет. Надо писать алгоритм самому. 
Или ты предлагаешь сделать это всему форуму ? smile

Автор: admin82 25.4.2009, 17:02
Не, писать не предлагаю, что стандартных методов нет тоже знаю.Просто мне в какой-то момент стало казаться, что так задать xml нельзя, вернее, что из такого набора нельзя однозначно восстановить xml. 
Но эта задача успешно решена, так что тему закрываю. 

Автор: Akeem 22.6.2009, 23:29
admin82
Поделись идеей. 

Автор: admin82 23.6.2009, 08:33
Цитата(Akeem @ 22.6.2009,  23:29)
admin82
Поделись идеей.

Да  идеи особо хитрой нету. Пара рекурсивных методов, да и все.  Код дать не могу, мне уже не принадлежит, а на словах ничего особо не скажешь. Я просто не сразу сообразил, можно ли так однозначно восстановить документ. 

Автор: Akeem 24.6.2009, 08:46
admin82
Понимаю. Лан что-то придумаем. smile

Есть встречный вопрос, а если документ будет представлен не полными xpath наподобии  //BlaSynonym/code[2] ? 

Автор: admin82 24.6.2009, 08:49
ну если нигде не будет встречаться элемент root, то мы его никак и не построим

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