22.07.2014, 14:18 | #1 |
Участник
|
XML
Axapta3.0 sp5FP2vat
|
|
22.07.2014, 14:23 | #2 |
Участник
|
Не нашел ничего полезного и понятного про xml. Расскажите пожалуйста (максимально подробнее пожалуйста), как осуществить выгрузку в xml (в моем случае из журнала счета-фактуры), а именно как создать xml, как записать в него разделы, как их закрыть, может еще что-то о чем я не знаю. Спасибо.
|
|
22.07.2014, 14:36 | #3 |
Участник
|
Привожу пример работы с XML, используя стандартные классы Аксапты:
X++: #define.xml('xml') #define.ProcessInstructions('version="1.0" encoding="utf-8"') XmlDocument xmlDocument = xmlDocument::newBlank(); XmlElement Node, childNode; FileName filename; ; xmlDocument.createProcessingInstruction(#xml, #ProcessInstructions); Node = xmlDocument.createNode(XmlNodeType::Element, "Node1", ""); Node.setAttribute("Attr1", "Value"); xmlDocument.appendChild(Node); childNode = xmlDocument.createNode(XmlNodeType::Element, "ChildData", ""); childNode.setAttribute("ChildAttr", "Value2"); Node.appendChild(childNode); filename = @"D:\xmlTest.xml"; xmlDocument.save(filename); UPD: Если выгружать запись таблицы в формате XML, то можно воспользоваться методом xml() табличной переменной. Последний раз редактировалось Cardagant; 22.07.2014 в 15:32. |
|
|
За это сообщение автора поблагодарили: BokarevSS (1). |
23.07.2014, 09:44 | #4 |
Участник
|
Цитата:
Сообщение от Cardagant
Привожу пример работы с XML, используя стандартные классы Аксапты:
X++: #define.xml('xml') #define.ProcessInstructions('version="1.0" encoding="utf-8"') XmlDocument xmlDocument = xmlDocument::newBlank(); XmlElement Node, childNode; FileName filename; ; xmlDocument.createProcessingInstruction(#xml, #ProcessInstructions); Node = xmlDocument.createNode(XmlNodeType::Element, "Node1", ""); Node.setAttribute("Attr1", "Value"); xmlDocument.appendChild(Node); childNode = xmlDocument.createNode(XmlNodeType::Element, "ChildData", ""); childNode.setAttribute("ChildAttr", "Value2"); Node.appendChild(childNode); filename = @"D:\xmlTest.xml"; xmlDocument.save(filename); UPD: Если выгружать запись таблицы в формате XML, то можно воспользоваться методом xml() табличной переменной. |
|
|
За это сообщение автора поблагодарили: BokarevSS (1). |
24.07.2014, 14:01 | #5 |
Участник
|
Расскажите пожалуйста еще, как в родительском разделе создать еще один родителдьский подраздел. Что то не получается.
|
|
24.07.2014, 16:03 | #6 |
Участник
|
Цитата:
X++: xmlDocument.appendChild(Node); |
|
24.07.2014, 18:08 | #7 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: BokarevSS (1). |
25.07.2014, 10:49 | #8 |
Участник
|
Все хорошо, и вроде бы понятно, но как организовать похожую структуру:
<?xml version="1.0" encoding="windows-1251" ?> - <Файл ИдФайл="имя файла" ВерсПрог="1.0" ВерсФорм="5.01"> - <СвУчДокОбор ИдОтпр="123456" ИдПок="1234456"> <СвОЭДОтпр НаимОрг="ООО блаблабла" ИННЮЛ="123456789" ИдЭДО="2BK" /> </СвУчДокОбор> - <Документ КНД="1115101"> - <СвСчФакт НомерСчФ="356987" ДатаСчФ="30.06.2014" КодОКВ="643"> - <СвПрод> - <ИдСв> <СвЮЛ НаимОрг="Открытое акционерное общество"" ИННЮЛ="6598654588" КПП="1234567" /> </ИдСв> - <Адрес> <АдрРФ Индекс="1111111" КодРегион="77" Город="МОСКВА" Улица="Улица" Дом="111" /> </Адрес> </СвПрод> - <СвПокуп> - <ИдСв> <СвЮЛ НаимОрг="ЖСК" ИННЮЛ="55555555" КПП="11111111" /> </ИдСв> и т. д. Как я вижу здесь внутри корневого раздела есть еще корневые. Возможно я ошибаюсь, или что-то недопонимаю? |
|
25.07.2014, 11:30 | #9 |
Участник
|
Не вижу где у Вас закрывается тэг <Файл>, но, возможно, это и есть Ваш ТОП уровень, в который включаются остальные тэги?
|
|
25.07.2014, 11:42 | #10 |
Участник
|
А, например, вот этот раздел внутри:
*** - <СвУчДокОбор ИдОтпр="123456" ИдПок="1234456"> <СвОЭДОтпр НаимОрг="ООО блаблабла" ИННЮЛ="123456789" ИдЭДО="2BK" /> </СвУчДокОбор> **** Вот эта конструкция разве не означает, что внутри основноq есть chaild, и при этом, сам "СвУчДокОбор", по сути тоже основной, находится внутри основного. Я делаю такой вывод из символов "-" |
|
Теги |
xml, xmldocument |
|
|