Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 12:20   #1
Alfiks
Пользователь
 
Регистрация: 18.05.2009
Сообщений: 11
Вопрос Добавить в XML дополнительное поле используя appendChild.

Написал вот такую штуку для добавления в xml документ своих данныых

Код:
Public Sub OneDocXML()
Dim xmlDoc  As Object
Dim root As Object
Dim newNode As Object
Dim Header As Object
Dim currNode As IXMLDOMNode

 
Set xmlDoc = CreateObject("Msxml.DOMDocument")
    xmlDoc.async = False
    xmlDoc.validateOnParse = False              'äîêóìåíò ïðàâèëüíûé
    xmlDoc.loadXML "<?xml version='1.0' encoding='UTF-8'?>"
 xmlDoc.Load ("c:\_test.xml")

If (xmlDoc.parseError.errorCode <> 0) Then
   Dim myErr
   Set myErr = xmlDoc.parseError
   MsgBox ("Îøèáêà â " & myErr.reason)
Else
  Dim str As String
     Set root = xmlDoc.documentElement
     str = "Before appendChild:" & vbCrLf & root.xml & vbCrLf
     Set newNode = xmlDoc.createNode(1, "newChild", "")
     Set currNode = root.insertBefore(newNode, root.childNodes.Item(1))
     root.appendChild newNode
  
End If
'Set xmlDoc = CreateObject("Msxml.DOMDocument")
xmlDoc.Save ("C:\Test31.xml")
MsgBox root.xml

End Sub
Оlнако возникла загвоздка в том, как сделать вставку вида
<newChild>code</newChild>
а не
<newChild xmlns="code"/>

Прошу не бить меня, я только первую неделю учусь ))
Alfiks вне форума Ответить с цитированием
Старый 14.03.2011, 12:59   #2
Alfiks
Пользователь
 
Регистрация: 18.05.2009
Сообщений: 11
По умолчанию

Нашел вариант вроде делает то что нужно!

Код:
     Set root = xmlDoc.documentElement
     Set newNode = xmlDoc.createElement("code2")
     root.childNodes.Item(1).appendChild newNode
     root.childNodes.Item(1).LastChild.Text = "my text"
     root.appendChild newNode
Однако не получается выполнить его повторно. Выводит только последний вариант.

И вопрос к обоим вариантам. Как делать вложения в данный код, типа
Код:
<order_prod>
		<HashKey key="5">
			<Code>test</Code>
			<Id>test</Id>
			<Name>test</Name>
			<Order>1</Order>
			<Price>30</Price>
		</HashKey>
</order_prod>
Alfiks вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить поле для поиска Kraimon Microsoft Office Excel 16 13.02.2011 17:18
XML в BLOB поле через IBQuery SiNBizkit БД в Delphi 1 08.12.2010 17:52
как добавить вычисляемое поле в grid? kate158 Помощь студентам 10 22.08.2008 13:40
Добавить данные в поле (в конец) John_chek БД в Delphi 6 20.08.2007 14:23
Добавить поле yulia БД в Delphi 2 12.05.2007 14:12