|
Разделить XML на элементы | ☑ | ||
---|---|---|---|---|
0
Bugmenot
05.12.12
✎
16:12
|
Подскажите, если простой способ и XML примерно такого вида:
<root> <item> ... куча вложенных узлов ... </item> <item> ... куча вложенных узлов ... </item> </root> Получить следующее: Элемент1 = "<item> ... куча вложенных узлов ... </item>"; Элемент2 = "<item> ... куча вложенных узлов ... </item>"; |
|||
1
Buster007
05.12.12
✎
16:16
|
можно попробовать сделать xsd-схему...)
|
|||
2
Defender aka LINN
05.12.12
✎
16:20
|
(1) И?
(0) Для нафига? |
|||
3
Staffa
05.12.12
✎
16:27
|
(0) как-то так:
ДомДокумент = Новый COMОбъект("Msxml2.DOMDocument.6.0"); ... ВыбранныеУзлы = ДомДокумент.SelectNodes("/Root/Item/"); Для Инд = 0 По ВыбранныеУзлы.Length - 1 Цикл ТекУзел = ВыбранныеУзлы.Item(Инд); ... КонецЦикла; У ТекУзел будет свойство XML - где будет содержимое всего этого узла. |
|||
4
Bugmenot
05.12.12
✎
16:29
|
(2) Пытаюсь обойти баг
Фабрика = СоздатьФабрикуXDTO(Схема); ХМЛ = Новый ЧтениеXML; ХМЛ.ОткрытьФайл(Файл); Пока ХМЛ.Прочитать() Цикл Если ХМЛ.ТипУзла = ТипУзлаXML.НачалоЭлемента И ХМЛ.Имя = "item" Тогда Элемент = Фабрика.ПрочитатьXML(ХМЛ,ЭлементТип); КонецЕсли; КонецЦикла; Фабрика.ПрочитатьXML скидывает текущую позицию ЧтенияXML на первый подчиненный узел СЛЕДУЮЩЕГО item-а. А не на его "начало элемента", как можно было бы ожидать. |
|||
5
Bugmenot
05.12.12
✎
16:30
|
+ Ну и из-за этого элементы читаются через один.
|
|||
6
х86
05.12.12
✎
16:30
|
(4)рекурсия + считай уровни
|
|||
7
Bugmenot
05.12.12
✎
16:31
|
(3) Ок, как вариант принято. Но хотелось бы штатными средствами... Почему у 1С-го DOM-а нет такого свойства? )
|
|||
8
Staffa
05.12.12
✎
16:36
|
(7) вот уж хз, на курсах вроде говорили, что он использует штатный XMLпарсер, но не до конца, типа работа с XML у 1С еще в разработке =)
|
|||
9
Defender aka LINN
05.12.12
✎
16:39
|
(4) Дык убери Пока ХМЛ.Прочитать() Цикл, и делай Прочитать() только в начале файла
|
|||
10
Bugmenot
05.12.12
✎
16:45
|
(9) Мне нужно из всех элементов xml-ки сформировать объекты фабрикой, их там много. Нужно либо ЧтениеXML позиционировать на начало каждого элемента и делать Фабрика.ПрочитатьXML или скармливать фабрике элементы предварительно их выделяя из всего текста xml.
|
|||
11
mzelensky
05.12.12
✎
16:48
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |