Имя: Пароль:
1C
1С v8
Как прочитать такой xml файл?
0 Radion
 
03.04.14
11:42
Как прочитать такой файл, который имеет следующую структуру:
<order pay_sum="222.70" pay_acc="400001" end_dt="25.01.2014T18:55:16" start_dt="25.01.2014T18:48:57" pay_trans="0" vt_trans="474" uni_trans="402501" paym_id="AAD04447-5114-483A-9E27-9BC457EFBB16">
<extra name="101">Старый Иван Евгеньевич</extra>
<extra name="102">г.Жуковский, ул.Максимова, дом 2, кв.11</extra>
<extra name="103">01</extra>
<extra name="104">14</extra>
<extra name="105"/>
<extra name="106"/>
<extra name="107"/>
<extra name="type">1</extra>
<extra name="numst">1</extra>
</order>
Вопрос в том, что к примеру начиная читать тег "order" система не читает параметры которые входят в этот тег (pay_sum="222.70" pay_acc="400001" end_dt="25.01.2014T18:55:16" start_dt="25.01.2014T18:48:57" pay_trans="0" vt_trans="474" uni_trans="402501" paym_id="AAD04447-5114-483A-9E27-9BC457EFBB16"), которые мне нужны. Т.е. типа понимает что это начала атрибута и все, листает дальше. Код чтения xml типовой. Читает только значение тега extra - Старый Иван Евгеньевич и г.Жуковский, ул.Максимова, дом 2, кв.11 ????
Спасибо.
1 Wobland
 
03.04.14
11:43
это не параметры, а атрибуты
2 vzuperman
 
03.04.14
11:44
(0)
cat Primer.xml | while read line do;
bla bla bal
done;
3 vzuperman
 
03.04.14
11:44
(0) (2) с вас 1000 рублей
4 cw014
 
03.04.14
11:46
ЧтениеXML (XMLReader)
ЗначениеАтрибута (AttributeValue)
Вариант синтаксиса: По номеру

Синтаксис:

ЗначениеАтрибута(<НомерАтрибута>)
Параметры:

<НомерАтрибута> (обязательный)

Тип: Число.
Порядковый номер атрибута, начиная с 0.
Вариант синтаксиса: По полному имени

Синтаксис:

ЗначениеАтрибута(<ПолноеИмяАтрибута>)
Параметры:

<ПолноеИмяАтрибута> (обязательный)

Тип: Строка.
Полное имя атрибута, включающее префикс.
Вариант синтаксиса: По локальному имени и пространству имен

Синтаксис:

ЗначениеАтрибута(<ЛокальноеИмяАтрибута>, <URIПространстваИмен>)
Параметры:

<ЛокальноеИмяАтрибута> (обязательный)

Тип: Строка.
Локальное имя атрибута, не включая префикс.
<URIПространстваИмен> (обязательный)

Тип: Строка.
URI пространства имен для локального имени атрибута.
Возвращаемое значение:

Тип: Строка; Неопределено.
Если атрибут найден, то метод возвращает строку, представляющую значение атрибута. Если атрибут, в соответствии с заданными параметрами не найден, то метод возвращает значение Неопределено.
Описание:

Получает значение атрибута.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Пример:

Чтение.ОткрытьФайл(ИмяФайла);
Попытка
    ИдГруппы = Чтение.ЗначениеАтрибута("pay_sum");
Исключение
КонецПопытки;




За возврат украденного СП - 300 р. с вам )))
5 Wobland
 
03.04.14
11:47
у меня букв поменьше, в вас 200

ЧтениеXML (XMLReader)
ПрочитатьАтрибут (ReadAttribute)
Синтаксис:

ПрочитатьАтрибут()
Возвращаемое значение:

Тип: Булево.
Истина - очередной атрибут прочитан; Ложь - атрибутов больше нет.
Описание:

Считывает очередной атрибут элемента XML. После прочтения с помощью метода ЧтениеXML.Прочитать очередного узла, имеющего тип НачалоЭлемента, можно получить доступ к атрибутам данного элемента. Каждый вызов данного метода позволяет прочитать очередной атрибут. После прочтения очередного атрибута свойствам ЧтениеXML.ТипУзла, ЧтениеXML.Имя, ЧтениеXML.ЛокальноеИмя, ЧтениеXML.Префикс, ЧтениеXML.URIПространстваИмен и ЧтениеXML.Значение присваиваются значения в соответствии с прочитанным атрибутом.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:

Чтение.ОткрытьФайл("c:/docs/data.xml");
Пока Чтение.Прочитать() Цикл
    Если Чтение.КоличествоАтрибутов() > 0 Тогда
        Пока Чтение.ПрочитатьАтрибут() Цикл
            // Обработка атрибута
        КонецЦикла
    КонецЕсли
КонецЦикла
6 cw014
 
03.04.14
11:49
(5) Эта, хорош демпинговать ))))
7 Radion
 
03.04.14
12:05
Спасибо, понятно )
8 Maxus43
 
03.04.14
12:06
Чтение = Новый ЧтениеXML;

Чтение.ОткрытьФайл(ПутьКФайлу);

Пока Чтение.Прочитать() Цикл // Прочитать «структурные части» элементов.

    // Проверить, какая часть элемента – текущая.
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
        ИмяУзла = Чтение.Имя;
        
        Сообщить("--" + ИмяУзла);

        // Атрибуты элементов можно читать только если текущая часть – начало элемента
        Пока Чтение.ПрочитатьАтрибут() Цикл

            // Прочитать данные узла атрибута.
            ТипУзла  = Чтение.ТипУзла;
            Имя      = Чтение.Имя;
            Значение = Чтение.Значение;
    
        // Обработать полученные значения.
        //    ...
        
        КонецЦикла;
        
    ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда    

        // В примере просто выводим текст в окно сообщений.    
        Сообщить("Текст:" + Чтение.Значение);
        
    ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда

        // В примере просто выводим признак конца элемента
        // в окно сообщений
        Сообщить("--Конец:" + Чтение.Имя);
        
    КонецЕсли;    
    
КонецЦикла    (с)
9 vzuperman
 
03.04.14
12:08
(8) как сложно
10 Maxus43
 
03.04.14
12:09
(9) так правильно
11 Radion
 
03.04.14
12:10
Maxus43 - так и сделал уже ))) )Не мог прочитать атрибуты узла). Спасибо Всем!
12 vzuperman
 
03.04.14
12:11
(10) Можно ли как нибудь из 1с вызвать системные утилиты? и дальше этот xml регепсами, катами и башем крутить вертеть?
13 Wobland
 
03.04.14
12:13
(12) команду системы штоль?
14 _fvadim
 
03.04.14
12:19
(12) главное - правильно навести понты :)
15 vzuperman
 
03.04.14
12:34
(14)
Волшебник, перелогинься. И хватит за мной по пятам ходить. (13)
да
16 Wobland
 
03.04.14
12:35
(15) можно
17 vzuperman
 
03.04.14
12:39
круть