ホームページ >バックエンド開発 >XML/RSS チュートリアル >vbs クラスは XML ファイルを生成します

vbs クラスは XML ファイルを生成します

黄舟
黄舟オリジナル
2017-02-13 15:36:141952ブラウズ

転載の際は出典を明記してください: vbsクラス生成xmlファイル
ファイルは2つあります:
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 中国語 Web サイト (www.php.cn) に関連するコンテンツを参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:XMLツリー構造次の記事:XMLツリー構造