|
XML to CSV
|
|||
---|---|---|---|
#18+
Всем привет. Пересмотрел всю ветку но исчерпывающего ответа для себя так и не нашел. С XSLT никогда не работал. Может вопрос и глупый но все же, не судите строго. Вопрос: Возможно ли, в принципе, без потерь преобразовать произвольный XML в CSV? Причем так, что бы из полученного CSV обратным преобразованием можно было получить исходный XML. И если да, есть ли какие то наработки по этому вопросу? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 16:23 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
Возможно ли, в принципе, без потерь преобразовать произвольный XML в CSV? csv это плоская таблица, а xml это древовидная структура. В принципе преобразовать произвольный xml можно без потерь в таблицу такого вида: Number - порядковый номер ParentNumber - порядковый номер родителя Type - тип узла (узел, атрибут, текст, cdata, комментарий, процессинговая инструкция) Text - текст узла Причем так, что бы из полученного CSV обратным преобразованием можно было получить исходный XML.Обратное преобразование по очевидным причинам невозможно на xsl. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 17:15 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
Antonariy В принципе преобразовать произвольный xml можно без потерь в таблицу такого вида: Number - порядковый номер ParentNumber - порядковый номер родителя Type - тип узла (узел, атрибут, текст, cdata, комментарий, процессинговая инструкция) Text - текст узла то что вы предложили по большему счету и есть дерево. AntonariyОбратное преобразование по очевидным причинам невозможно на xsl. Имелось ввиду не посредством XSL, а в принципе. Я же хочу получить что-то на подобии этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
recipe@name recipe@preptime recipe@cooktime recipe:title recipe:ingredient@amount recipe:ingredient@unit recipe:ingredient recipe:ingredient_2@amount ...хлеб 5 180 Простой хлеб 3 стакан Мука 0.25 ... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 18:16 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
Ну так в чем проблема? Получите на здоровье. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 18:40 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
OK :). Тогда другой вопрос. Насколько сложно реализовать такое посредством XSLT, учитывая тот факт что XML произвольный и для правильного формирования таблицы мне для начала нужно узнать максимальное значение атрибутов для каждого тега и максимальное количество вложены тегов для каждого тега? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 18:55 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
Или не начинать учить XSLT, а сделать все программно, тем более для обратного преобразования все равно придется делать. Просто хочется сделать теоретически/логически правильно, а не как обычно. Для принятия таких решений опыта, честно говоря, маловато. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 19:00 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
LIfeIsGoodMFНасколько сложно реализовать такое посредством XSLT Не сложнее чем любое другое. LIfeIsGoodMF учитывая тот факт что XML произвольный Таблица, которую предложил я, может хранить любое дерево, и это дерево можно превратить в соответствующий xml даже не видя образца ожидаемого xml. В вашем примере никакой произвольности нет, и без образца и csv и xml процедур трансформации не напишешь. Поэтому определитесь, что вам все-таки нужно, универсальность или что-то типа вашего примера. LIfeIsGoodMFтем более для обратного преобразования все равно придется делатьА кстати и обратно можно частично на xsl в зависимости от используемых вами технологий. Например в adodb можно открыть csv как набор данных и пересохранить в xml, на который можно натравить xsl. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 22:25 |
|
XML to CSV
|
|||
---|---|---|---|
#18+
LIfeIsGoodMF, вот вам ради примера разбор заголовков для CSV на XSL. а дальше думайте, хотите ли вы учить XSL до такого уровня, или проще DOM расковырять (это кстати не менее правильный путь) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2011, 01:37 |
|
|
start [/forum/topic.php?fid=14&fpage=25&tid=1332828]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 284ms |
total: | 418ms |
0 / 0 |