|
Подскажите, как прочитать текст узла ХМЛ |
☑ |
0
0xFFFFFF
17.08.12
✎
07:42
|
Например имеем узел XML
<КакойТоУзел Атрибут = "1">Это текст</КакойТоУзел>
Так вот Если ЧтениеXML.ИмяУзла = "КакойТоУзел", то ЧтениеXML.ПолучитьАтрибут("Атрибут") = "1".
А вот как отсюта получить "Это текст"?
|
|
1
0xFFFFFF
17.08.12
✎
07:43
|
Все время сталкивался с атрибутами, а тут структура такая, что текст узла надо читать. Чет в СП не нашел ничего.
|
|
2
Wobland
17.08.12
✎
07:43
|
прочитать атрибут попробуй
|
|
3
0xFFFFFF
17.08.12
✎
07:46
|
Пробовал. В том то и дело, что это не атрибут. Это вроде как в ЗаписиXML пишется как ЗаписатьКомментарий(). Но ПрочитатьКомментарий у Чтения ХМЛ нету
|
|
4
Wobland
17.08.12
✎
07:50
|
>Атрибут = "1"
>это не атрибут
сдаюсь
|
|
5
0xFFFFFF
17.08.12
✎
07:52
|
Этот код записывает пример из (0)
ЗаписьХМЛ = Новый ЗаписьXML;
ЗаписьХМЛ.ОткрытьФайл("C:\Temp\1.xml", "UTF-8");
ЗаписьХМЛ.ЗаписатьОбъявлениеXML();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("КакойТоУзел");
ЗаписьХМЛ.ЗаписатьАтрибут("Атрибут", "1");
ЗаписьХМЛ.ЗаписатьТекст("Это текст");
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.Закрыть();
Т.е. ЗаписатьТекст есть. А вот ПрочитатьТекст() у ЧтениеXML почему то нет :)
|
|
6
0xFFFFFF
17.08.12
✎
07:53
|
(4) я не про атрибут (с атрибутами все понятно), а про текст узла.
|
|
7
0xFFFFFF
17.08.12
✎
08:00
|
Ну что, мистозубры, вы где? Вопрос то простецкий.
|
|
8
0xFFFFFF
17.08.12
✎
08:07
|
О! Нашел
Если ФайлXML.ТипУзла = ТипУзлаXML.Текст Тогда
Сообщение.Текст = ФайлXML.Значение;
Сообщение.Сообщить();
КонецЕсли;
Всем спасибо, можно не отвечать :)
|
|
9
Rie
17.08.12
✎
08:07
|
(6) Зацени фокус:
Пока ЧтениеXML.ТипУзла<>ТипУзлаXML.Текст Цикл
ЧтениеXML.Прочитать();
КонецЦикла;
Сообщить(ЧтениеXML.Значение);
|
|
10
andrewks
17.08.12
✎
08:15
|
Рез=1;
Попытка
Пока ХМЛ.Прочитать() Цикл
ТипУзла=ХМЛ.ТипУзла;
Если (ТипУзла=ТипУзлаXML.НачалоЭлемента) Тогда
Смещ=Смещ+" ";
Сообщить(Смещ+"Элемент "+ХМЛ.Имя+":",СтатусСообщения.Важное);
Пока (ХМЛ.ПрочитатьАтрибут()) Цикл
Сообщить(Смещ+"Атрибут: "+ХМЛ.Имя+", значение: <"+ХМЛ.Значение+">");
КонецЦикла;
ИначеЕсли (ТипУзла=ТипУзлаXML.КонецЭлемента) Тогда
Смещ=Лев(Смещ,СтрДлина(Смещ)-4);
ИначеЕсли (ТипУзла=ТипУзлаXML.Текст) Тогда
Сообщить(Смещ+"Текст элемента: <"+ХМЛ.Значение+">");
ИначеЕсли (ТипУзла=ТипУзлаXML.СекцияCDATA) Тогда
Сообщить(Смещ+"CDATA: <"+ХМЛ.Значение+">");
ИначеЕсли (ТипУзла=ТипУзлаXML.Комментарий) Тогда
Сообщить(Смещ+"Комментарий: <"+ХМЛ.Значение+">",СтатусСообщения.Информация);
Иначе
Сообщить(Смещ+"Элемент "+ХМЛ.Имя+":");
Сообщить(Смещ+"Тип: "+ХМЛ.Значение);
КонецЕсли;
КонецЦикла;
Исключение
Сообщить(ОписаниеОшибки());
Рез=0;
КонецПопытки;
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший