2010-02-13 129 views
1

我回到了使用XML处理的asp。 初始文件:经典ASP中的XML 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)将将字符串和节点<sport> 在结束后立即追加在我的文件<Definition> ---<x> </x> <z> </z> --</Definition>这应该是我的结果:

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

这是行不通的。有没有更好的方法来完成这个?

+0

它不是完全从您的代码示例清楚,但您使用的是MSXML对象或其他什么东西? – AnonJr 2010-02-13 20:24:18

回答

1

您不能直接添加文本..你需要将其转换为XML节点首先..

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

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

Nope 错误类型: Microsoft VBScript运行时(0x800A01B6) 对象不支持此属性或方法:'NodeList.appendChild' – FasoService 2010-02-13 21:12:09

+1

不使用'Root.getElementsByTagName(“sport”)'去运动..使用'Root.selectSingleNode( “体育”)'。第一个返回一个节点列表(*,你不能直接附加*)第二个返回节点(*,它支持appendChild .. *) – 2010-02-14 02:10:42

+0

这是一个plus.thanks。然而其追加运动节点 之外--- - 代替 --- - FasoService 2010-02-14 18:21:40