|
Подскажите по XML | ☑ | ||
---|---|---|---|---|
0
DES
09.07.15
✎
15:10
|
Есть такое:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <AREA_CODE>1</AREA_CODE> <CITY_CODE>25</CITY_CODE> </row> <row> <AREA_CODE>1</AREA_CODE> <CITY_CODE>15</CITY_CODE> </row> </root> как получать CITY_CODE в цикле ? |
|||
1
Лефмихалыч
09.07.15
✎
15:12
|
читать в цикле до тех пор, пока не дочитаешь до начала элемента CITY_CODE.
В чем проблема? |
|||
2
AllJoke
09.07.15
✎
15:12
|
// чтение XML
XML = Новый ЧтениеXML; XML.ОткрытьФайл("d:\Базы 1С\Data.xml"); Пока XML.Прочитать() Цикл Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Сообщить("<" + XML.Имя + ">"); Пока XML.ПрочитатьАтрибут() Цикл Сообщить(XML.Имя + " = " + XML.Значение); КонецЦикла; КонецЕсли; Если XML.ТипУзла = ТипУзлаXML.Текст Тогда Сообщить(XML.Значение); КонецЕсли; Если XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда Сообщить(""); КонецЕсли; КонецЦикла; XML.Закрыть(); |
|||
3
Ненавижу 1С
гуру
09.07.15
✎
15:12
|
что не получилось?
|
|||
4
Ёпрст
09.07.15
✎
15:18
|
в домдокументе можно прыгать только по узлам как ты хочешь
|
|||
5
DES
09.07.15
✎
15:24
|
я путаюсь еще, где атрибут, зде элемент, где и не атрибут а сразу текст
|
|||
6
DES
09.07.15
✎
15:27
|
(2) так оно работает конечно, а как получать сразу CITY_CODE, а не перебирать в цикле пока не найдется CITY_CODE ?
|
|||
7
Лефмихалыч
09.07.15
✎
15:35
|
(6) ни как
|
|||
8
Лефмихалыч
09.07.15
✎
15:35
|
хотя, нет, - есть xpath, но он тебя еще сильнее запутает, так что лучше перебирай
|
|||
9
ДенисЧ
09.07.15
✎
15:36
|
(7) XDTO
|
|||
10
Лефмихалыч
09.07.15
✎
15:39
|
(9) да это все струйня и не серьезно, равно, как и все DOM'ы b XPath'ы. Оно все приводит к чтению файла целиком. Если файл огромный, то - один кол - читать последовательно. Если файл маленький, то выигрыша по перфомансу по сравнению с последовательным чтением либо не будет, либо он будет измеряться милисекундами
|
|||
11
Timon1405
09.07.15
✎
15:41
|
||||
12
DES
09.07.15
✎
15:58
|
(11) замечательно!
|
|||
13
Гёдза
09.07.15
✎
16:16
|
(10) по перфомансу - нет, по читабельности код - колоссальный выигрыш
|
|||
14
DES
09.07.15
✎
17:19
|
(2) что то не пойму, как присвоить значение переменной,
тут в одном цикле имя, в другом значение ? В каком месте можно записать в структуру Стр.Вставить("AREA_CODE", XML.Значение) ? |
|||
15
DES
10.07.15
✎
08:28
|
подскажите, читаю схему из файла
НовоеЧтениеXML = Новый ЧтениеXML; НовоеЧтениеXML.ОткрытьФайл("D:\TEST_XDTO.xsd"); Все работает. как сделать тоже самое, но из строки загрузить схему? НовоеЧтениеXML = Новый ЧтениеXML; НовоеЧтениеXML.Читать(Стр); а так не хочет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |