2010-02-13 7 views
1

Я вернулся к asp с помощью manupulation XML. Первоначальный файл:XML в классическом ASP Vbscript

<?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> 

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

+0

Это не совсем ясно из вашего образца кода, но вы используете объект MSXML или что-то еще? – AnonJr

ответ

1

Вы не можете добавить текст непосредственно .. вам нужно преобразовать его в XML-узел первый ..

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

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

Нету Тип Ошибка: Microsoft VBScript выполнения (0x800A01B6) Объект не поддерживает это свойство или метод: «» NodeList.appendChild – FasoService

+1

не использовать 'Root.getElementsByTagName («спорт»)', чтобы добраться до спорта .. использование 'Root.selectSingleNode ("спорт")'. Первый возвращает список узлов (*, к которому вы не можете присоединить напрямую *), второй возвращает узел (*, который поддерживает appendChild .. *) –

+0

Это плюс. Однако добавление вне спортивного узла --- - вместо --- - FasoService

Смежные вопросы