XML в классическом ASP Vbscript - PullRequest
1 голос
/ 13 февраля 2010

Я вернулся к asp с манипуляцией XML. Исходный файл:

<?xml version="1.0" ?>
<root>
  <sport/>
</root>

это моя функция

Public Function DefinitFunction( x,z)


Dim text 
Dim Root
Dim NodeList

    text = "<Definition>" ---<x> </x> <z> </z> --</Definition> " 
    text = text & "<x><![CDATA["&x&"]]> </x>"
    text = text & "<z> </z>"        
    text = text & "</Definition>"

Set Root = objDoc.documentElement 
Set NodeList = Root.getElementsByTagName("sport") 

NodeList.appendChild text 

objDoc.Save strFile

end function
'  Private strFile, objDoc are class object

Я хочу изменить все динамически. Итак, у меня есть функция: DefinitFunction(x,z), который объединит строку и добавит <Definition> ---<x> </x> <z> </z> --</Definition> в мой файл сразу после узла <sport> в конце это должен быть мой результат:

<?xml version="1.0" ?>
<root>
  <sport>
    <Definition>
        ---<x> </x> <z> </z> --
      </Definition> 
   </sport>
</root>

Это не работает. Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 13 февраля 2010

Вы не можете добавлять текст напрямую. Сначала нужно преобразовать его в узел XML.

Set newXML = CreateObject("Microsoft.XMLDOM") 
newXML.async = False 
newXML.loadXML( "<root>" & text & "</root>")

NodeList.appendChild( newXML.documentElement.selectSingleNode("/Definition"))
...