Имя: Пароль:
1C
1С v8
Подскажите, как прочитать текст узла ХМЛ
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;
   КонецПопытки;

Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн