青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

一個XML類創建子節點的問題

Posted on 2009-10-22 08:04 S.l.e!ep.¢% 閱讀(498) 評論(0)  編輯 收藏 引用 所屬分類: HTML
網上找了個VBS操作XML的類,代碼如下:
Class clsXML
'strFile must be full path to document, ie C:XMLXMLFile.XML
'objDoc is the XML Object
Private strFile, objDoc

'*********************************************************************
' Initialization/Termination
'*********************************************************************

'Initialize Class Members
Private Sub Class_Initialize()
strFile = ""
End Sub

'Terminate and unload all created objects
Private Sub Class_Terminate()
Set objDoc = Nothing
End Sub

'*********************************************************************
' Properties
'*********************************************************************

'Set XML File and objDoc
Public Property Let File(str)
Set objDoc = CreateObject("Microsoft.XMLDOM")
objDoc.async = False
strFile = str
objDoc.Load strFile
End Property

'Get XML File
Public Property Get File()
File = strFile
End Property

'*********************************************************************
' Functions
'*********************************************************************

'Create Blank XML File, set current obj File to newly created file
Public Function createFile(strPath, strRoot)
Dim objFSO, objTextFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile(strPath, True)
objTextFile.WriteLine("<?xml version=""1.0"" encoding=""gb2312""?>")
objTextFile.WriteLine("<" & strRoot & "/>")
objTextFile.Close
Me.File = strPath
Set objTextFile = Nothing
Set objFSO = Nothing
End Function

'Get XML Field(s) based on XPath input from root node
Public Function getField(strXPath)
Dim objNodeList, arrResponse(), i
Set objNodeList = objDoc.documentElement.selectNodes(strXPath)
ReDim arrResponse(objNodeList.length)
For i = 0 To objNodeList.length - 1
arrResponse(i) = objNodeList.Dir(i).Text
Next
getField = arrResponse
End Function

'Update existing node(s) based on XPath specs
Public Function updateField(strXPath, strData)
Dim objField
For Each objField In objDoc.documentElement.selectNodes(strXPath)
objField.DirName= strData
Next
objDoc.Save strFile
Set objField = Nothing
updateField = True
End Function

'Create node directly under root
Public Function createRootChild(strNode)
Dim objChild
Set objChild = objDoc.createNode(1, strNode, "")
objDoc.documentElement.appendChild(objChild)
objDoc.Save strFile
Set objChild = Nothing
End Function

'Create a child node under root node with attributes
Public Function createRootNodeWAttr(strNode, attr, val)
Dim objChild, objAttr
Set objChild = objDoc.createNode(1, strNode, "")
If IsArray(attr) And IsArray(val) Then
If UBound(attr)-LBound(attr) <> UBound(val)-LBound(val) Then
Exit Function
Else
Dim i
For i = LBound(attr) To UBound(attr)
Set objAttr = objDoc.createAttribute(attr(i))
objChild.setAttribute attr(i), val(i)
Next
End If
Else
Set objAttr = objDoc.createAttribute(attr)
objChild.setAttribute attr, val
End If
objDoc.documentElement.appendChild(objChild)
objDoc.Save strFile
Set objChild = Nothing
End Function

'Create a child node under the specified XPath Node
Public Function createChildNode(strXPath, strNode)
Dim objParent, objChild
For Each objParent In objDoc.documentElement.selectNodes(strXPath)
Set objChild = objDoc.createNode(1, strNode, "")
objParent.appendChild(objChild)
Next
objDoc.Save strFile
Set objParent = Nothing
Set objChild = Nothing
End Function

'Create a child node(s) under the specified XPath Node with attributes
Public Function createChildNodeWAttr(strXPath, strNode, attr, val)
Dim objParent, objChild, objAttr
For Each objParent In objDoc.documentElement.selectNodes(strXPath)
Set objChild = objDoc.createNode(1, strNode, "")
If IsArray(attr) And IsArray(val) Then
If UBound(attr)-LBound(attr) <> UBound(val)-LBound(val) Then
Exit Function
Else
Dim i
For i = LBound(attr) To UBound(attr)
Set objAttr = objDoc.createAttribute(attr(i))
objChild.SetAttribute attr(i), val(i)
Next
End If
Else
Set objAttr = objDoc.createAttribute(attr)
objChild.setAttribute attr, val
End If
objParent.appendChild(objChild)
Next
objDoc.Save strFile
Set objParent = Nothing
Set objChild = Nothing
End Function

'Delete the node specified by the XPath
Public Function deleteNode(strXPath)
Dim objOld
For Each objOld In objDoc.documentElement.selectNodes(strXPath)
objDoc.documentElement.removeChild objOld
Next
objDoc.Save strFile
Set objOld = Nothing
End Function
End Class


然后,我參照上面的類寫了個目錄島,代碼如下:

Dim objXML, strPath, str

Set objXML = New clsXML

strPath = "c:Dir.xml"

objXML.createFile strPath, "Dir_Island"
'<!-- 創建3個根節點 -->
objXML.createRootNodeWAttr "Dir", Array("DirID","DirName", "DirOwner", "DirDescption","CreateTime"), _
Array(1,"Dir1", "Lili", "a",now)
objXML.createRootNodeWAttr "Dir", Array("DirID","DirName", "DirOwner", "DirDescption","CreateTime"), _
Array(2,"Dir2", "Jony", "b",now)
objXML.createRootNodeWAttr "Dir", Array("DirID","DirName", "DirOwner", "DirDescption","CreateTime"), _
Array(3,"Dir3", "Self", "c",now)
'<!-- 在第一個根節點中創建1個子節點可以成功 -->
objXML.createChildNodeWAttr "Dir[@DirName='Dir1']", "Dir", _
Array("DirID","DirName", "DirOwner", "DirDescption","CreateTime"), _
Array(4,"Sub_Dir1", "Jony1", "bb",now)
'<!-- 在剛才創建的子節點中再創建1個子節點怎么就不行? -->
objXML.createChildNodeWAttr "Dir[@DirName='Sub_Dir1']", "Dir", _
Array("DirID","DirName", "DirOwner", "DirDescption","CreateTime"), _
Array(5,"Sub_Sub_Dir1", "Jony2", "bbb",now)

Set objXML = Nothing

'程序運行完后生成的XML文件如下:
' <?xml version="1.0" encoding="gb2312" ?>
'- <Dir_Island>
' - <Dir DirID="1" DirName="Dir1" DirOwner="Lili" DirDescption="a" CreateTime="3/30/2004 9:03:11 AM">
' <Dir DirID="4" DirName="Sub_Dir1" DirOwner="Jony1" DirDescption="bb" CreateTime="3/30/2004 9:03:11 AM" />
' </Dir>
' <Dir DirID="2" DirName="Dir2" DirOwner="Jony" DirDescption="b" CreateTime="3/30/2004 9:03:11 AM" />
' <Dir DirID="3" DirName="Dir3" DirOwner="Self" DirDescption="c" CreateTime="3/30/2004 9:03:11 AM" />
' </Dir_Island>

'為什么不是這樣的呢?

' <?xml version="1.0" encoding="gb2312" ?>
'- <Dir_Island>
' - <Dir DirID="1" DirName="Dir1" DirOwner="Lili" DirDescption="a" CreateTime="3/30/2004 9:03:11 AM">
' <Dir DirID="4" DirName="Sub_Dir1" DirOwner="Jony1" DirDescption="bb" CreateTime="3/30/2004 9:03:11 AM">
' <Dir DirID="5" DirName="Sub_Sub_Dir1" DirOwner="Jony2" DirDescption="bbb" CreateTime="3/30/2004 9:03:11 AM" />
' </Dir>
' </Dir>
' <Dir DirID="2" DirName="Dir2" DirOwner="Jony" DirDescption="b" CreateTime="3/30/2004 9:03:11 AM" />
' <Dir DirID="3" DirName="Dir3" DirOwner="Self" DirDescption="c" CreateTime="3/30/2004 9:03:11 AM" />
' </Dir_Island>

以上代碼需要測試的話請各位連同類和代碼COPY到本地新建一個VBS文檔運行,運行結果在你本機C:Dir.xml中顯示。
請教各位XML高手啊。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久琪琪电影院| 欧美电影免费观看高清完整版| 亚洲精品资源| 欧美日韩三级一区二区| 一本久久青青| 亚洲视频网站在线观看| 国产人久久人人人人爽| 久久精品视频在线观看| 久久精精品视频| 激情成人综合| 亚洲国产精品久久人人爱蜜臀 | 亚洲人www| 欧美色道久久88综合亚洲精品| 在线亚洲电影| 久久爱www.| 亚洲精华国产欧美| 亚洲网站在线看| 国产综合亚洲精品一区二| 欧美成人精品h版在线观看| 欧美高清在线一区二区| 午夜精品久久久久久| 久久高清国产| 国产精品99久久久久久久女警 | 欧美性久久久| 久久躁狠狠躁夜夜爽| 欧美国产日韩在线| 欧美中日韩免费视频| 你懂的亚洲视频| 亚洲欧美国产日韩中文字幕| 久久精品30| 亚洲一区二区三区四区五区午夜| 欧美在线综合| 亚洲特黄一级片| 久久午夜羞羞影院免费观看| 亚洲综合三区| 免费看成人av| 久久久精品国产免费观看同学| 欧美mv日韩mv国产网站| 久久精品夜色噜噜亚洲a∨| 欧美激情一级片一区二区| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩亚洲一区二区三区在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩亚洲一区三区| 欧美成人一区二区三区| 国产色婷婷国产综合在线理论片a| 亚洲激情六月丁香| 在线观看亚洲专区| 欧美与黑人午夜性猛交久久久| 亚洲淫性视频| 欧美日产在线观看| 亚洲第一页在线| 亚洲第一中文字幕在线观看| 亚洲欧美春色| 亚洲欧美日韩直播| 欧美性猛交xxxx免费看久久久| 亚洲国产成人精品女人久久久 | 亚洲电影欧美电影有声小说| 欧美一区二区三区婷婷月色| 午夜视频久久久| 国产精品家教| 亚洲深夜影院| 亚洲欧美精品伊人久久| 欧美日韩国产色视频| 亚洲欧洲日本国产| 亚洲狼人精品一区二区三区| 男女激情视频一区| 亚洲黄网站黄| 亚洲一区二区精品在线观看| 欧美精品一区三区| 一本色道久久综合狠狠躁篇怎么玩 | 国产精品天天摸av网| 一区二区三区高清不卡| 亚洲一二三四区| 国产精品久久看| 亚洲在线国产日韩欧美| 午夜一区二区三视频在线观看| 国产精品草莓在线免费观看| 在线视频你懂得一区二区三区| 亚洲图片欧美一区| 国产精品久久婷婷六月丁香| 亚洲一区视频在线| 久久九九热re6这里有精品| 国内精品伊人久久久久av一坑| 久久久久99| 亚洲国产成人久久综合一区| 在线性视频日韩欧美| 国产精品少妇自拍| 欧美在线中文字幕| 亚洲国产精品久久久久婷婷884| 亚洲最新色图| 国产欧美日韩综合一区在线播放 | 亚洲国产欧美一区二区三区久久 | 国产亚洲精品美女| 久久久久久久欧美精品| 亚洲国产综合91精品麻豆| 亚洲一区二区三区四区在线观看| 国产乱人伦精品一区二区| 欧美中文字幕久久| 日韩视频不卡中文| 久久精品一区二区三区不卡牛牛| 亚洲精品美女久久7777777| 欧美网站在线| 久久久五月天| 一区二区三区精密机械公司| 久久青草久久| 亚洲一区亚洲| 在线观看成人av电影| 国产精品国产三级国产专播精品人 | 久久超碰97中文字幕| 91久久国产综合久久| 国产日韩av高清| 欧美国产激情| 久久久成人网| 亚洲欧美一区在线| 亚洲精品自在久久| 欧美成人一品| 久久久精品国产免费观看同学| 9久草视频在线视频精品| 狠狠操狠狠色综合网| 欧美午夜影院| 欧美国产亚洲视频| 久久久综合网站| 性视频1819p久久| 一区二区高清在线| 亚洲激情精品| 亚洲国产精品精华液2区45| 久久精品国产一区二区三区| 中文精品视频一区二区在线观看| 亚洲国产精品99久久久久久久久| 国产亚洲精品一区二区| 国产精品成人免费视频| 欧美日本簧片| 欧美成人精品一区二区三区| 久久国产毛片| 久久精品国产免费观看| 亚洲欧美电影院| 亚洲一区二区三| 亚洲永久免费观看| 亚洲一区二区在线| 亚洲无玛一区| 亚洲欧美www| 午夜视频精品| 久久精品日产第一区二区| 午夜精品福利一区二区蜜股av| 亚洲图片欧洲图片日韩av| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产乱码最新视频| 亚洲国产岛国毛片在线| 亚洲狠狠婷婷| 日韩视频在线观看国产| av成人免费观看| 亚洲视频观看| 午夜伦理片一区| 欧美在线视频网站| 久久天天躁狠狠躁夜夜av| 麻豆国产精品一区二区三区 | 欧美一区二区三区日韩| 欧美一区二区观看视频| 久久久精品网| 欧美激情久久久久| 欧美丝袜一区二区| 国产美女精品人人做人人爽| 国产亚洲观看| 91久久亚洲| 亚洲私人影院在线观看| 久久电影一区| 牛人盗摄一区二区三区视频| 91久久在线| 亚洲一区三区在线观看| 久久激情五月激情| 欧美精品激情在线观看| 国产精品一区二区三区免费观看 | 国产精品国产亚洲精品看不卡15| 国产精品青草久久| 激情亚洲网站| 亚洲一区二区免费在线| 久久久国产精品亚洲一区| 欧美激情第8页| 亚洲一区国产精品| 久久亚洲午夜电影| 国产精品地址| 亚洲国产另类精品专区| 一区二区三区欧美在线| 久久久久免费观看| 日韩一二三区视频| 久久精品人人做人人爽| 欧美日韩一区二区三区| 在线播放日韩| 欧美一区二区三区四区在线观看地址 | 久久在线免费| 亚洲视屏一区| 欧美精品久久一区二区| 黄网站色欧美视频| 亚洲欧美日韩国产精品| 欧美成在线视频| 欧美中日韩免费视频| 国产精品久久久久久久app| 亚洲日本成人网| 久久夜色精品国产欧美乱极品 |