>백엔드 개발 >XML/RSS 튜토리얼 >VBS 클래스는 xml 파일을 생성합니다.

VBS 클래스는 xml 파일을 생성합니다.

黄舟
黄舟원래의
2017-02-13 15:36:141957검색

재인쇄할 때 소스를 표시하십시오. vbs 클래스 생성 xml 파일
에는 두 개의 파일이 있습니다:
objXML.asp: 테스트 파일
clsXML.asp: vbs 클래스 파일
코드:

objXML.asp
<%@ Language=VBScript %><% Option Explicit %><!--#INCLUDE FILE=&#39;clsXML.asp&#39;--><%Dim objXML, strPath, strSet objXML = New clsXML
strPath = Server.MapPath(&#39;.&#39;) & &#39;\New.xml&#39;
objXML.createFile strPath, &#39;Root&#39;&#39;Or If using an existing XML file:&#39;objXML.File = &#39;C:\File.xml&#39;
objXML.createRootChild &#39;Images&#39;
&#39;Here only one attribute is added to the Images/Image NodeobjXML.createChildNodeWAttr &#39;Images&#39;, &#39;Image&#39;, &#39;id&#39;, &#39;1&#39;objXML.updateField &#39;Images//Image[@id=1]&#39;, 
&#39;super.gif&#39;objXML.createRootNodeWAttr &#39;Jobs&#39;, Array(&#39;Size&#39;, &#39;Length&#39;, &#39;Width&#39;), _Array(24, 31, 30)objXML.createRootNodeWAttr &#39;Jobs&#39;, 
Array(&#39;Size&#39;, &#39;Length&#39;, &#39;Width&#39;), _Array(24, 30, 29)objXML.createRootNodeWAttr &#39;Jobs&#39;, Array(&#39;Size&#39;, &#39;Length&#39;, &#39;Width&#39;), _Array(24, 31, 85)
&#39;Notice that all three job nodes have size 24, all of those &#39;nodes will be updatedobjXML.updateField &#39;Jobs[@Size=24]&#39;, &#39;24&#39;s&#39;
&#39;Notice that only two nodes have the specified XPath, hence &#39;only two new child nodes will be addedobjXML.createChildNodeWAttr &#39;Jobs[@Size=24 and @Length=31]&#39;, 
&#39;Specs&#39;, _Array(&#39;Wood&#39;, &#39;Metal&#39;, &#39;Color&#39;), _Array(&#39;Cedar&#39;, &#39;Aluminum&#39;, &#39;Green&#39;)
&#39;It is always important to iterate through all of the nodes&#39;returned by this XPath query.For Each str In objXML.getField(&#39;Jobs[@Size=24]&#39;)Response.
Write(str & &#39;<br>&#39;)NextSet objXML = Nothing
Response.Redirect &#39;New.xml&#39;%>
clsXML.asp:
<%Class clsXML&#39;strFile must be full path to document, ie C:\XML\XMLFile.XML&#39;objDoc is the XML ObjectPrivate strFile, objDoc
&#39;*********************************************************************&#39; Initialization/Termination&#39;*********************************************************************
&#39;Initialize Class MembersPrivate Sub Class_Initialize()strFile = &#39;&#39;End Sub
&#39;Terminate and unload all created objectsPrivate Sub Class_Terminate()Set objDoc = NothingEnd Sub
&#39;*********************************************************************&#39; Properties&#39;*********************************************************************
&#39;Set XML File and objDocPublic Property Let File(str)Set objDoc = Server.CreateObject(&#39;Microsoft.XMLDOM&#39;)objDoc.async = FalsestrFile = strobjDoc.Load strFileEnd Property
&#39;Get XML FilePublic Property Get File()File = strFileEnd Property
&#39;*********************************************************************&#39; Functions&#39;*********************************************************************
&#39;Create Blank XML File, set current obj File to newly created filePublic Function createFile(strPath, strRoot)Dim objFSO, objTextFileSet objFSO = Server.
CreateObject(&#39;Scripting.FileSystemObject&#39;)Set objTextFile = objFSO.CreateTextFile(strPath, True)objTextFile.WriteLine(&#39;<?xml version=&#39;&#39;1.0&#39;&#39;?>&#39;)objTextFile.
WriteLine(&#39;<&#39; & strRoot & &#39;/>&#39;)objTextFile.CloseMe.File = strPathSet objTextFile = NothingSet objFSO = NothingEnd Function
&#39;Get XML Field(s) based on XPath input from root nodePublic Function getField(strXPath)Dim objNodeList, arrResponse(), iSet objNodeList = objDoc.documentElement.
selectNodes(strXPath)ReDim arrResponse(objNodeList.length)For i = 0 To objNodeList.length - 1arrResponse(i) = objNodeList.item(i).
TextNextgetField = arrResponseEnd Function
&#39;Update existing node(s) based on XPath specsPublic Function updateField(strXPath, strData)Dim objFieldFor Each objField In objDoc.documentElement.
selectNodes(strXPath)objField.Text = strDataNextobjDoc.Save strFileSet objField = NothingupdateField = TrueEnd Function
&#39;Create node directly under rootPublic Function createRootChild(strNode)Dim objChildSet objChild = objDoc.createNode(1, strNode, &#39;&#39;)objDoc.documentElement.
appendChild(objChild)objDoc.Save strFileSet objChild = NothingEnd Function
&#39;Create a child node under root node with attributesPublic Function createRootNodeWAttr(strNode, attr, val)Dim objChild, objAttrSet objChild = objDoc.
createNode(1, strNode, &#39;&#39;)If IsArray(attr) And IsArray(val) ThenIf UBound(attr)-LBound(attr) <> UBound(val)-LBound(val) ThenExit FunctionElseDim iFor 
i = LBound(attr) To UBound(attr)Set objAttr = objDoc.createAttribute(attr(i))objChild.setAttribute attr(i), val(i)NextEnd IfElseSet objAttr = objDoc.
createAttribute(attr)objChild.setAttribute attr, valEnd IfobjDoc.documentElement.appendChild(objChild)objDoc.Save strFileSet objChild = NothingEnd Function
&#39;Create a child node under the specified XPath NodePublic Function createChildNode(strXPath, strNode)Dim objParent, objChildFor Each objParent In objDoc.
documentElement.selectNodes(strXPath)Set objChild = objDoc.createNode(1, strNode, &#39;&#39;)objParent.appendChild(objChild)NextobjDoc.Save strFileSet 
objParent = NothingSet objChild = NothingEnd Function
&#39;Create a child node(s) under the specified XPath Node with attributesPublic Function createChildNodeWAttr(strXPath, strNode, attr, val)Dim objParent, objChild, 
objAttrFor Each objParent In objDoc.documentElement.selectNodes(strXPath)Set objChild = objDoc.createNode(1, strNode, &#39;&#39;)If IsArray(attr) And IsArray(val) 
ThenIf UBound(attr)-LBound(attr) <> UBound(val)-LBound(val) ThenExit FunctionElseDim iFor i = LBound(attr) To UBound(attr)Set objAttr = objDoc.
createAttribute(attr(i))objChild.SetAttribute attr(i), val(i)NextEnd IfElseSet objAttr = objDoc.createAttribute(attr)objChild.setAttribute attr, 
valEnd IfobjParent.appendChild(objChild)NextobjDoc.Save strFileSet objParent = NothingSet objChild = NothingEnd Function
&#39;Delete the node specified by the XPathPublic Function deleteNode(strXPath)Dim objOldFor Each objOld In objDoc.documentElement.selectNodes(strXPath)objDoc.
documentElement.removeChild objOldNextobjDoc.Save strFileSet objOld = NothingEnd FunctionEnd Class%>

위는 vbs 클래스 생성 xml 파일의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 참고해주세요. (www.php.cn)!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:XML 트리 구조다음 기사:XML 트리 구조