Как программно создать XML-файл и выгрузить в него данные?
1. Ссылку на xml поставить Microsoft XML, v 3.0. Вот примеры кода Dim xmlDoc As New DOMDocument Dim RootNode As IXMLDOMElement Dim Node As IXMLDOMElement
xmlDoc.loadXML "<root></root>" Set RootNode = xmlDoc.selectSingleNode("root")
Set Node = xmlDoc.createNode("element", "test", "") RootNode.appendChild Node
xmlDoc.Save strFile
А если формат файла чуть посложнее, например:
<?xml version = '1.0' encoding='UTF-8'?> <database xsi:noNamespaceSchemaLocation='schema.xsd' xmlns:xsi='http://www.aaa.org/100/XMLSchema-instance'> <info> <type>Тип</type> <date>2010-11-30</date> <location>Контора</location> </info> <types period='2010-05'> <row> <date1>2010-05-30</date1> <kod>xsi:nil='true'</kod> <text1>КАКОЙ-ТО ТЕКСТ</text1> <chislo>5</chislo> </row> <row> <date1>2010-03-12</date1> <kod>4</kod> <text1>КАКОЙ-ТО ТЕКСТ</text1> <chislo>7</chislo> </row> </types> </database>
где атрибут "xsi:nil='true'" должно быть помещен в тело тэга в случае отсутствия значения тэга.
<?xml version = '1.0' encoding='UTF-8'?> - как создается эта строка? Особенно интересует вложенность тэгов...
И если можно на данном примере...
1. xmlDoc.loadXML "<?xml version = '1.0' encoding='UTF-8'?><root></root>" 2. xsi:nil='true' - это не атрибут тега, а его значение. Атрибут это когда данные находятся внутри скобок <>. Например, <product id=2>Товар 2</product> id - атрибут, Товар 2 - значение. Есть также еще мемо поля они предназначены для хранения любых текстов. Лучше у объектной модели XML прочитать документацию, немного функций и все станет понятно сразу.
Спасибо.
Но есть еще несколько вопросов по XML:
1. В строке <kod>xsi:nil='true'</kod> я ошибся, т.е. нужно так <kod xsi:nil='true' /kod>. Т.е. в данном случае "xsi:nil='true'" - атрибут (не так ли?) и должно быть помещен в тело тэга в случае отсутствия значения тэга. Как это сделать? Т.е. как получить строку <kod xsi:nil='true' /kod> в случае когда значение kod = ""?
2. Как получить строку
<database xsi:noNamespaceSchemaLocation='schema.xsd' xmlns:xsi='http://www.aaa.org/100/XMLSchema-instance'>
где database - самый верхний уровень (см. пример выше)?
3. Чем отличается и чем лучше пользовать при создании элементов:
или
Set type_node = info_node.ownerDocument.createElement("type") info_node.appendChild type_node type_node.appendChild database_node.ownerDocument.createTextNode(Type)