Показать сообщение отдельно
Старый 20.02.2008, 13:40   #17  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Вообще с XMLDocument можно как только не извращаться. Вот, например, вариант действия только через CreateNode и AppendChild:
X++:
    TextBuffer              txtBuffOut;
    XMLDocument             xmlDoc;
    XMLElement              documentNode, lineItemNode, elemNode, valueNode;
    COM                     dom;
    str                     resText;
    ;

    dom             = XMLDocument::XMLDOM();
    xmlDoc          = xmlNode::construct(dom);

    documentNode    = xmlDoc.createNode(XMLNodeType::ELEMENT, "Tag1", "");

    while (  - )
        where (-)
    {
	    lineItemNode    = xmlDoc.createNode(XMLNodeType::ELEMENT, "Tag2", "");

            // Для каждого поля
            elemNode    = xmlDoc.createNode(XMLNodeType::ELEMENT, "Fileld1", "");
            valueNode   = xmlDoc.createNode(XMLNodeType::TEXT, "", "");
            valueNode.nodeValue("Значение поля 1");
            elemNode.appendChild(valueNode);
            lineItemNode.appendChild(elemNode);

		...

            elemNode    = xmlDoc.createNode(XMLNodeType::ELEMENT, "FileldN", "");
            valueNode   = xmlDoc.createNode(XMLNodeType::TEXT, "", "");
            valueNode.nodeValue("Значение поля N");
            elemNode.appendChild(valueNode);
            lineItemNode.appendChild(elemNode);

            documentNode.appendChild(lineItemNode);
        }
    }

    xmlDoc.appendChild(documentNode);

    resText = '<?xml version="1.0" encoding="Windows-1251" ?>' + "\n" + xmlDoc.xml();

    txtBuffOut  = new TextBuffer();
    txtBuffOut.setText(resText);
    txtBuffOut.toFile(FileName);