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

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.¢% 閱讀(494) 評論(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>
            亚洲黄色影院| 亚洲人成久久| 国产亚洲成av人片在线观看桃 | 亚洲色图在线视频| 亚洲午夜精品| 亚洲欧美日韩中文视频| 性色av一区二区三区红粉影视| 午夜精品偷拍| 久久在线免费观看| 欧美大片一区二区三区| 亚洲国产精品久久人人爱蜜臀 | 午夜日韩在线观看| 久久福利视频导航| 美女主播视频一区| 亚洲人在线视频| 午夜久久tv| 欧美粗暴jizz性欧美20| 欧美日韩一区二区三区四区五区| 国产精品美女久久久久久免费 | 最新成人av网站| 一本一道久久综合狠狠老精东影业 | 欧美激情网友自拍| 一本色道久久88综合亚洲精品ⅰ| 国产一区二区三区四区五区美女| 在线播放日韩| 欧美国产精品v| 久久精品成人欧美大片古装| 久久久久一本一区二区青青蜜月| 久久久99国产精品免费| 欧美成人四级电影| 国产精品久久久久久久午夜| 红桃视频国产精品| 亚洲一区日韩| 欧美国产日韩一区二区| 亚洲性线免费观看视频成熟| 欧美一区二区三区啪啪| 欧美日韩爆操| 国产日韩欧美高清| a4yy欧美一区二区三区| 久久久成人网| 亚洲精选视频免费看| 久久精品一区四区| 国产精品国色综合久久| 一区二区高清在线| 欧美成ee人免费视频| 午夜在线一区二区| 国产精品久久久久久久久久免费| 伊人成人在线视频| 久久精品91| 亚洲一区二区三区四区中文| 欧美激情aⅴ一区二区三区| 狠狠色狠狠色综合日日五| 欧美一区二区女人| 亚洲一区二区三区在线| 欧美人与禽性xxxxx杂性| 亚洲国产精品va在线看黑人动漫| 久久久亚洲一区| 午夜亚洲性色福利视频| 国产乱码精品| 亚洲欧美一区二区激情| 亚洲精品免费一区二区三区| 免费不卡在线视频| 亚洲第一福利视频| 免费在线国产精品| 浪潮色综合久久天堂| 精品动漫3d一区二区三区| 久久精品亚洲精品国产欧美kt∨| 午夜日韩在线| 影音先锋亚洲视频| 欧美激情视频网站| 欧美日韩18| 亚洲欧美色一区| 亚洲免费在线视频| 国模大胆一区二区三区| 乱人伦精品视频在线观看| 久久久国产精品一区| 中文有码久久| 麻豆av一区二区三区| 久久av一区二区三区| 国内欧美视频一区二区| 麻豆精品在线视频| 欧美国产日本高清在线| 亚洲一区二区免费视频| 亚洲欧美一区二区三区极速播放| 国产亚洲欧美日韩精品| 欧美va天堂在线| 欧美日本在线视频| 久久av一区| 麻豆国产va免费精品高清在线| 99精品热视频| 亚洲欧美国产精品va在线观看| 激情久久久久久久久久久久久久久久| 欧美成人亚洲| 国产精品大片wwwwww| 久久免费偷拍视频| 欧美日本精品在线| 久久久国产精品亚洲一区| 欧美韩国一区| 久久国产主播| 亚洲国产一区二区三区青草影视| 亚洲精品国产欧美| 国产一区二区三区高清| 亚洲日本va午夜在线影院| 国产精品视频成人| 亚洲区在线播放| 激情成人在线视频| 亚洲一级黄色av| 亚洲精品美女在线观看播放| 亚洲免费视频中文字幕| 亚洲美女色禁图| 久久国产精品亚洲va麻豆| 在线综合亚洲欧美在线视频| 久久夜色精品国产欧美乱极品| 亚洲一区区二区| 欧美黑人一区二区三区| 另类专区欧美制服同性| 国产精品在线看| 99ri日韩精品视频| 亚洲精品日韩激情在线电影| 久久精品国产一区二区三区| 欧美一级在线视频| 欧美视频一区二区三区在线观看| 欧美激情精品久久久久| 狠狠色综合网| 欧美影院在线播放| 欧美一级片久久久久久久| 欧美三日本三级少妇三2023| 亚洲激情成人网| 亚洲激情网站| 久久天天躁夜夜躁狠狠躁2022| 久久精品国产亚洲a| 国产免费成人av| 午夜天堂精品久久久久| 久久精品一区| 国内伊人久久久久久网站视频| 亚洲欧美日韩国产另类专区| 欧美亚洲一区| 国产一区美女| 久久福利影视| 欧美aa国产视频| 亚洲啪啪91| 欧美精品不卡| 欧美日韩大片一区二区三区| 一区二区三区国产精华| 亚洲精品影视| 久久精品1区| 免费短视频成人日韩| 在线观看视频免费一区二区三区 | 亚洲香蕉伊综合在人在线视看| 在线一区欧美| 欧美视频一区二区| 亚洲午夜未删减在线观看| 欧美在线啊v| 在线视频观看日韩| 老牛嫩草一区二区三区日本 | 国产精品久久夜| 亚洲欧美日韩一区在线| 久久精品在这里| 亚洲人成高清| 欧美精品一区三区| 亚洲系列中文字幕| 麻豆成人在线| 一区二区三区产品免费精品久久75 | 在线一区二区三区做爰视频网站| 欧美精品高清视频| 在线亚洲观看| 久久蜜桃资源一区二区老牛 | 亚洲淫性视频| 欧美激情第10页| 在线亚洲免费| 黑人一区二区三区四区五区| 欧美精品一区在线播放| 亚洲欧美日韩精品久久亚洲区| 久久久久高清| 在线亚洲欧美视频| 国产九九精品| 欧美日韩三级| 久久亚洲国产精品日日av夜夜| 夜夜嗨网站十八久久| 欧美成人久久| 午夜精品久久久久久久99樱桃| 精品电影在线观看| 欧美视频二区| 免费成人av| 亚洲免费影视| 亚洲美女啪啪| 亚洲第一页中文字幕| 久久国产免费看| 亚洲伦理久久| 国产午夜久久久久| 国产精品av久久久久久麻豆网| 久久频这里精品99香蕉| 亚洲少妇在线| 欧美激情网友自拍| 久久久久九九九| 亚洲欧美资源在线| 一区二区三区视频在线| 欧美成人一区二区| 亚洲国产婷婷香蕉久久久久久| 国产伦精品一区二区三区免费迷 |