2010-02-13 130 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