AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2010, 17:08   #1  
PavelX is offline
PavelX
MCTS
MCBMSS
 
46 / 97 (4) ++++
Регистрация: 08.09.2006
Адрес: Красноярск
Ошибочка, попробуйте так:
X++:
    root   = xmlDocument.createNode(XMLNodeType::ELEMENT, "Name", "");
    root2  = xmlDocument.createNode(XMLNodeType::ELEMENT, "Date", "");
    root3  = xmlDocument.createNode(XMLNodeType::ELEMENT, "By", "");

    docElem = xmlDocument.appendChild(root);
    docElem2 = docElem.appendChild(root2);
    docElem3 = docElem.appendChild(root3);

    root2.text(date2str(today(), 123,2,2,2,2,2));
    root3.text('Ivan');

    xmlDocument.save("С:\\XML.xml");
Старый 06.04.2010, 17:15   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от PavelX Посмотреть сообщение
Ошибочка, попробуйте так:
что вам пытаются втолковать:
задавайте текст у только что созданного элемента, а не у документа.

Неправильно:
X++:
    docElem = xmlDocument.appendChild(root);
    docElem2 = docElem.appendChild(root2);
    node = xmlDocument.createTextNode(date2str(today(), 123,2,2,2,2,2));
Правильно
X++:
    docElem = xmlDocument.appendChild(root);
    docElem2 = docElem.appendChild(root2);
    node = docElem2.createTextNode(date2str(today(), 123,2,2,2,2,2));
__________________
полезное на axForum, github, vk, coub.
Старый 07.04.2010, 08:08   #3  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Правильно
X++:
    docElem = xmlDocument.appendChild(root);
    docElem2 = docElem.appendChild(root2);
    node = docElem2.createTextNode(date2str(today(), 123,2,2,2,2,2));
Но "Класс XMLNode не содержит эту функцию."
Старый 06.04.2010, 17:18   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Ну, если взять исходную задачу, то нужно что-нибудь подобное:
Код:
  XMLElement      filedNode, xmlElementRoot;

  ;

  xmlElementRoot= xmlDocument.createElement("section");
     filedNode= xmlDocument.createElement("id");
       filedNode.text("1001");
     xmlElementRoot.appendChild(filedNode);

     filedNode= xmlDocument.createElement("sum");
       filedNode.text("100");
     xmlElementRoot.appendChild(filedNode);

   xmlDocument.appendChild(xmlElementRoot);
Еще вариант, делать так как написал mazzy

Последний раз редактировалось Raven Melancholic; 06.04.2010 в 17:20. Причина: mazzy обогнал
Старый 06.04.2010, 23:43   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
А если без класса XMLDocument ? если просто писать нужное содержание со всеми тегами в текстовый файл с расширением xml ?
Старый 07.04.2010, 06:05   #6  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Просто для информации - формат даты в XML
PHP код:
<Date>2001-12-31</Date
поэтому лучше наверное так
X++:
node = xmlDocument.createElement("Date");
node.text(date2str(date, 321, 2, 3, 2, 3, 4));
rootNode.appendChild(node);
__________________
Axapta non erubescit
Старый 07.04.2010, 07:53   #7  
jonny is offline
jonny
Участник
Аватар для jonny
Самостоятельные клиенты AX
 
217 / 124 (5) +++++
Регистрация: 10.02.2006
Адрес: СПб-Екб-?
Версия AX - 5.0?
Если так, можно использовать технологию LINQ, с ней гораздо удобнее создавать XML документы.
Нужно подключить ссылку (reference) на System.Xml.Linq (правда нужен .Net framework 3.5 версии)
код создания вашего док-та:
X++:
 System.Xml.Linq.XElement document=new  System.Xml.Linq.XElement(System.Xml.Linq.XName::Get("section"));
    System.Exception e;
 
    ;
    try
    {
 
        document.Add(new System.Xml.Linq.XElement(System.Xml.Linq.XName::Get("id"),1001));
        document.Add(new System.Xml.Linq.XElement(System.Xml.Linq.XName::Get("sum"),100));
 
        document.Save("c:\\test.xml");
    }
    catch(Exception::CLRError)
    {
        e = ClrInterop::getLastException();
        while( e )
        {
            info( e.get_Message() );
            e = e.get_InnerException();
        }
    }

Последний раз редактировалось jonny; 07.04.2010 в 08:01.
За это сообщение автора поблагодарили: gl00mie (5).
Старый 07.04.2010, 08:52   #8  
novic is offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Регистрация: 14.04.2005
Цитата:
Сообщение от PavelX Посмотреть сообщение
Ошибочка, попробуйте так:
X++:
    root   = xmlDocument.createNode(XMLNodeType::ELEMENT, "Name", "");
    root2  = xmlDocument.createNode(XMLNodeType::ELEMENT, "Date", "");
    root3  = xmlDocument.createNode(XMLNodeType::ELEMENT, "By", "");

    docElem = xmlDocument.appendChild(root);
    docElem2 = docElem.appendChild(root2);
    docElem3 = docElem.appendChild(root3);

    root2.text(date2str(today(), 123,2,2,2,2,2));
    root3.text('Ivan');

    xmlDocument.save("С:\\XML.xml");
Вот так получается.

Последний раз редактировалось novic; 07.04.2010 в 09:08.
Теги
xml, кодировка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
X++: Serializing Axapta Foundation Class instances as XML streams Blog bot DAX Blogs 0 04.06.2009 23:05
PatrickChua: XML serialization Blog bot DAX Blogs 0 04.05.2009 14:05
dax-lessons: Generate XML Documentation Files for a project - DAX 2009 Blog bot DAX Blogs 0 04.05.2009 14:05
dax-lessons: Generate XML Documentation Files for a project - DAX 2009 Blog bot DAX Blogs 0 08.08.2008 19:06
axStart: How to use XSLT in AIF and what’s wrong with empty xml Nodes. Blog bot DAX Blogs 0 27.04.2008 18:07

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:52.