|
ДокументDOM получить часть XML
| ☑ |
0
YFred
17.09.15
✎
10:53
|
Нужно из XML файла выдрать кусок данных, например есть XML:
<doc>
<qq>
еще вложенные теги с атрибутами
</qq>
<rr>
</rr>
</doc>
Нужно получить строку содержащую:
<qq>
еще вложенные теги с атрибутами
</qq>
Можно это сделать с помощью объекта ДокументDOM?
|
|
1
magicSan
17.09.15
✎
10:58
|
xpatch тебе в помощь. можно
|
|
2
Fragster
гуру
17.09.15
✎
11:04
|
(0) более полно можешь описать задачу? зачем этот "кусок XML нужен"
|
|
3
YFred
17.09.15
✎
11:06
|
нужно сохранить один узел XML как строку, без обработки.
|
|
4
YFred
17.09.15
✎
11:15
|
Как получить заданный узел я знаю, как из типа "ЭлементDOM" получить его содержимое в виде xml?
|
|
5
Fragster
гуру
17.09.15
✎
11:16
|
через построительDOM делаем документDOM,
через XPpath или любым другим методом находим нужный узел,
копируем его вместе со всем подчинением, устанавливаем его в качестве элемента документа.
|
|
6
Fragster
гуру
17.09.15
✎
11:16
|
устанавливаем копию
|
|
7
YFred
17.09.15
✎
11:47
|
Мне надо не скопировать узел, а получить его необработанное значение в виде строки XML
|
|
8
Fragster
гуру
17.09.15
✎
11:49
|
(7) после того, как скопируешь и установишь корнем - надо документDOM записать в XML
|
|
9
YFred
17.09.15
✎
12:00
|
пока сделал так:
Результат = ДокументDOM.ВычислитьВыражениеXPath("/путь/*",ДокументDOM,Разыменователь);
Узел = Результат.ПолучитьСледующий();
ХМЛ=Новый ЗаписьXML;
ХМЛ.ОткрытьФайл("c:\файл.xml");
ЗаписьДОМ=Новый ЗаписьDOM;
ЗаписьДОМ.Записать(Узел,ХМЛ);
ХМЛ.Закрыть();
чтение = Новый ТекстовыйДокумент;
Чтение.Прочитать("c:\файл.xml");
Сообщить(чтение.ПолучитьТекст()); //то что нужно
Но думаю можно как то легче, без записи в файл. Подскажите?
|
|
10
Fragster
гуру
17.09.15
✎
12:16
|
XML.УстановитьСтроку();
....
Сообщить(XML.Закрыть())
|
|
11
YFred
17.09.15
✎
13:46
|
если без открытия файла сделать ЗаписьДОМ.Записать(Узел,ХМЛ);
вылетает ошибка, ругается на приемник ХМЛ
|
|
12
YFred
17.09.15
✎
13:54
|
разобрался :)
спасибо
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой