|
|
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Копаюсь в просторах интернета и никак не могу найти нужный мне вариант обработки xml. Суть такая - есть xml файл, в нем приблизительно такая структура: Код: xml 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. В одном из <Item> нет тега <Par3>. Как можно обнаружить такое место и добавить этот тэг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 17:09 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Dr_Grizzlyдобавить этот тэгвсе равно, какое значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 17:28 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Да, все равно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 17:45 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Dr_GrizzlyДа, все равно Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 17:57 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Спасибо, только не пойму что получается - матрица с тремя строками, в первой колонке содержание xml, во второй колонке последовательность 1-2-3 по строкам. а остальные две пустые... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 18:24 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
<XMLTYPE> 1 100355159 -1 2014-07-22T00:00:00 2014-07-24T00:00:00 11 <XMLTYPE> 2 100355159 -1 2014-07-25T00:00:00 2018-12-03T00:00:00 10 <XMLTYPE> 3 100355159 -1 2014-07-16T00:00:00 2014-07-21T00:00:00 10 <XMLTYPE> 4 100355159 -1 1970-01-01T00:00:00 2013-02-21T00:00:00 11 <XMLTYPE> 5 100355159 -1 2013-02-22T00:00:00 2014-07-15T00:00:00 10 <XMLTYPE> 6 100355159 -1 2018-12-04T00:00:00 9999-01-01T00:00:00 Немного ошибся я в коде когда преобразовывал. вообще вот что выдал запрос - в последней колонке в последней строке нет значения - как раз то место, где нет нужного тега. А теперь как его туда воткнуть можно? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 18:31 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Dr_GrizzlyСпасибо, только не пойму что получается - матрица с тремя строками, в первой колонке содержание xml, во второй колонке последовательность 1-2-3 по строкам. а остальные две пустые... :) Код: plsql 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. Только не делайте так. Если принципиально внутри oracle - то зарегистрируйте схему и воспользуйтесь XMLSerialize SHOW DEFAULTS, оно умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 19:02 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Dr_GrizzlyВ одном из <Item> нет тега <Par3>. Как можно обнаружить такое место и добавить этот тэг? Ну если знаем имена всех тегов под Item: Код: plsql 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. Но основой вопрос может ли Par3 быть NULL? Если да, то использование xmlelement("Par3",par3) в COLUMNS не отделаешься и придется проверять само наличие тега Par3. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 19:07 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousзарегистрируйте схему и воспользуйтесь XMLSerialize SHOW DEFAULTS, оно умеет. Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 20:21 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Истина где-то рядом )) Нашел еще одну штуку, но чуток не дотягиваю как поставить условие НЕ Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2018, 08:05 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Ура товарищи! Получилось! Спасибо вам за помощь! Вот последний вариант Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2018, 09:01 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Dr_Grizzlyкак поставить условие НЕВеликая тайна, посмотреть в спецификации xquery функцию not, доступна не всем. Кстати, наличие значения само по себе логическое выражение, поэтому exists излишен. Ну и еще вариант - вообще не проверять существование, а брать "nvl". Если структура xml известна целиком, то можно обойтись и без modify, обеспечив совместимость со старыми версиями БД: Код: sql 1. 2. 3. 4. Закладываться на обязательное наличие пустого элемента плохой тон. Задавать в схеме nillable и потом в xml писать атрибут nil=true излишне громоздко. Переопределять всякие int как строку, чтобы вместить пустое значение тоже не самое удачное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2018, 09:02 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
-2-, Хорошая мысль! Я ее покурю в перерыве. Спасибо! Есть еще момент интересный )) Сначала я хотел вставлять в недостающий тэг константное значение, но задачка немного усложнилась и теперь хочу туда втыкать параметр. Кручу xmlQuery по всякому, и прийти к результату не получается... Возьмем уже работающий код и попробуем немного его подпилить Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. такой вариант не прокатывает. Вставляет прям текстом "$TAXGP"... Пробовал исключить из select и просто конкатенацию строк делать. не помогло Явно где-то маленькая палочка в колесе застряла... Есть предложения как это можно победить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 14:27 |
|
||
|
Вставка в XML недостающего тега
|
|||
|---|---|---|---|
|
#18+
Победил задачку! Вот результат: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 15:03 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39747607&tid=1883016]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 538ms |

| 0 / 0 |
