![]() |
|
Как прочитать такой 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
|
круть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |