隨筆 - 8  文章 - 55  trackbacks - 0
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          vbs類生成xml文件
          [ 作者:??加入時間:2006-04-03 15:13:42??來自: ]
          有兩文件:
          obj
          XML . asp :測試文件
          cls
          XML . asp :vbs類文件
          代碼:
          obj
          XML . asp

          <%@ Language=VBScript %>
          <% Option Explicit %>
          <!--#INCLUDE FILE="cls
          XML . asp "-->
          <%
          Dim obj
          XML , strPath, str
          Set obj
          XML = New cls XML

          strPath = Server.MapPath(".") & "/New.xml"

          obj XML .createFile strPath, "Root"
          'Or If using an existing
          XML file:
          'obj
          XML .File = "C:/File.xml"

          obj XML .createRootChild "Images"

          'Here only one attribute is added to the Images/Image Node
          obj
          XML .createChildNodeWAttr "Images", "Image", "id", "1"
          obj
          XML .updateField "Images//Image[@id=1]", "super.gif"
          obj
          XML .createRootNodeWAttr "Jobs", Array("Size", "Length", "Width"), _
          Array(24, 31, 30)
          obj
          XML .createRootNodeWAttr "Jobs", Array("Size", "Length", "Width"), _
          Array(24, 30, 29)
          obj
          XML .createRootNodeWAttr "Jobs", Array("Size", "Length", "Width"), _
          Array(24, 31, 85)

          'Notice that all three job nodes have size 24, all of those
          'nodes will be updated
          obj
          XML .updateField "Jobs[@Size=24]", "24's"

          'Notice that only two nodes have the specified XPath, hence
          'only two new child nodes will be added
          obj
          XML .createChildNodeWAttr "Jobs[@Size=24 and @Length=31]", "Specs", _
          Array("Wood", "Metal", "Color"), _
          Array("Cedar", "Aluminum", "Green")

          'It is always important to iterate through all of the nodes
          'returned by this XPath query.
          For Each str In obj
          XML .getField("Jobs[@Size=24]")
          Response.Write(str & "<br>")
          Next
          Set obj
          XML = Nothing

          Response.Redirect "New.xml"
          %>

          cls XML . asp :

          <%
          Class cls
          XML
          'strFile must be full path to document, ie C:/ XML / XML File. 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 = Server.CreateObject("Microsoft.
          XML DOM")
          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 = Server.CreateObject("Scripting.FileSystemObject")
          Set objTextFile = objFSO.CreateTextFile(strPath, True)
          objTextFile.WriteLine("<?xml version=""1.0""?>")
          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.item(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.Text = 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
          %>

          posted @ 2006-06-06 13:04 blog搬家了--[www.ialway.com/blog] 閱讀(427) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 扬中市| 长顺县| 泽普县| 昭觉县| 景谷| 青海省| 黎川县| 和龙市| 绥芬河市| 吴江市| 区。| 邯郸县| 中山市| 巫山县| 运城市| 子洲县| 七台河市| 丹寨县| 丰县| 罗定市| 祥云县| 固镇县| 会东县| 南充市| 龙州县| 朝阳区| 怀仁县| 醴陵市| 江口县| 泸州市| 澄迈县| 广平县| 江山市| 淮阳县| 弥渡县| 远安县| 长治市| 广平县| 阳山县| 邵武市| 清水河县|