|
xml из текста
|
|||
---|---|---|---|
#18+
Есть некий xml, который возвращает внешний сервер. В этом xml'е много всего, плюс кое что нужное конкретно мне. Это что-то - xml, полученный путем склейки текста, и обернутый в CDATA, то есть на входе что-то типа такого: автор<?xml version="1.0" encoding="UTF-8"?> <tag> <tag2>12345</tag2> <xml><![CDATA[ <group> <oper>op1</oper> <oper>op2</oper> <oper>op3</oper> <group2> <oper>op4</oper> <oper>op5</oper> </group2> </group> ]]></xml> <tag3>abcd</tag3> </tag> Вот то, что лежит в теге <xml> мне и нужно. Проблема в том, что у меня содержимое выкусывается как текст :( А мне нужен xml. То есть нужно не просто выкусить, но и прогнать через свои шаблончики, преобразовать, и все такое. А как я прогоню, если процессор считает, что это текст... Влиять на входной формат возможности нет, то есть есть, но лишь на содержимое тега <xml>, т.е. внутрь CDATA могу дописать что угодно, если вдруг надо. С какой стороны подойти к решению что-то не соображу, нужно средствами xslt 1.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2011, 10:22 |
|
xml из текста
|
|||
---|---|---|---|
#18+
Астарот, Есть такая проблема, причем с СиДатой у трансформера особое отношение, он ее никак не хочет переворачивать простым реплейсом. Я обычно это решал приходом к программистам с мотиватором (битой) и XML становился, резко, нормальным. Есть очень опасный и не шибко шустрый способ решения вашей проблемы, если данные не большие по объему и валидные, можно попробывать их разобрать самостоятельно. Изобразить из себя sax-парсер средствами XSL. Надо заметить, давно я так не развлекался. :-)) Код: 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115.
превращение переменной в дерево это вариант для мелкомягких: <xsl:variable name="fragment" select="msxsl:node-set($_fragment)" /> на других трансформерах будет что-то вроде: <xsl:variable name="fragment" select="nodeset($_fragment)" /> или <xsl:variable name="fragment" select="node-set($_fragment)" /> надо смотреть доку на конкретный. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2011, 16:06 |
|
xml из текста
|
|||
---|---|---|---|
#18+
Маааааатерь божья... Казалось бы фундаментальная проблема, а через такую задницу решается. За развернутый ответ спасибо, попытаюсь понять как это все должно работать =) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2011, 16:16 |
|
xml из текста
|
|||
---|---|---|---|
#18+
уменьшил количество бреда, проверил пустые теги... если в атрибутах будет последовательность '\"' работать не будет. Можно и такую фигню обработать, но лень. Удачи. Код: 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2011, 16:29 |
|
|
start [/forum/topic.php?fid=14&tid=1332856]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 294ms |
total: | 416ms |
0 / 0 |