|
|
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Валидировал свой xml с помощью xsd-схемы и объекта IXMLDOMDocument3 метод validate . Нормально валидировалось или выдавало ошибку. Но возникла необходимость удалять строки, в которых есть несоответствие xsd-схеме. Доходит до vXMLParserError :=vXMLDoc.validateNode(line); и выдает ошибку EOleException with message 'Неизвестное имя' Код Код: pascal 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. xsd-схема: Код: 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. 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. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. сам xml: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 13:04 |
|
||
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
evgen29, А если посмотреть, что в lines и в line, может тогда будет понятней, почему возникает ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 14:25 |
|
||
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
goldmi45 evgen29, А если посмотреть, что в lines и в line, может тогда будет понятней, почему возникает ошибка? так validate проходит нормально, даже если я не убираю ошибки. vXMLParserError.errorCode просто не 0 становится и есть описание ошибки. Попробовал на документе, где нет ошибок. Validate проходит, validatenode опять тоже самое. Не в этом дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 16:26 |
|
||
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
Вот этот кусок evgen29 Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 17:13 |
|
||
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
в общем дело не в этом.Дело в том, что почему-то в delphi 7 эта опция работает не так. Сделал через ole. Не ругается на validateNode(line); если я убираю цикл, т.е. методы работают нормально. Такое впечатление, что для delphi 7 в модуле MSXML2_TLB этот метод как-то неправильно скомпилирован или не туда указывает ps: Сейчас ругается на несовместимость типов при самом сравнении, пытаюсь победить. Если знаете подскажите. line по ходу содержит IDispatch и когда исчерпаны все линии выдает $00000000. Но при сравнении ругается. Пробовал и так while line<>$00000000 do и так while line<>Unassigned do Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 17:51 |
|
||
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. PS В аттаче мой рабочий MSXML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 18:06 |
|
||
|
IXMLDOMDocument3 validatenode в delphi7 не работает
|
|||
|---|---|---|---|
|
#18+
В общем может кому понадобится рабочий вариант по удалению строк, не проходящих проверку. Сейчас пока так, removeChild не отработал, ругается, что нет такого потомка. Но он вложенный, видимо там вложенных не находит метод. Потом при рефакторинге исправлю. Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2020, 21:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39938393&tid=2038480]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 385ms |

| 0 / 0 |
