<% Class xmlparser Private m_async Private m_xmlpath Private xmldoc Private fso Sub class_initialize Set xmldoc=server.createobject("microsoft.xmldom") Set fso=CreateObject("Scripting.FileSystemObject") End Sub Sub class_teminate Set xmldoc=Nothing Set fso=Nothing End Sub PublicPropertyGet xmlpath xmlpath=m_xmlpath End Property PublicPropertyLet xmlpath(ByVal value) IfNot fso.FileExists(server.mappath(value)) Then response.write "文件不存在!" response.End Else m_xmlpath=server.mappath(value) EndIf End Property PublicPropertyGet async async=m_async End Property PublicPropertyLet async(ByVal value) If value=FalseThen m_async=False else m_async=True EndIf End Property PublicSub load() xmldoc.async=m_async xmldoc.load m_xmlpath End Sub PublicFunction selectXmlNodeText(elementname) elementname="//"&elementname temp=xmldoc.selectSingleNode(elementname).text selectXmlNodeText= server.htmlencode(temp) End Function PublicFunction insertXmlNodeText(befelementname,elementname,elementtext) dim befelement,element set befelement=xmldoc.selectSingleNode("//"&befelementname) set element= xmldoc.createelement(elementname) befelement.insertBefore element,befelement.firstchild element.text=elementtext end function PublicFunction updateXmlNodeText(elementname,newelementtext) dim element set element=xmldoc.selectSingleNode("//"&elementname) element.text=newelementtext end function PublicFunction deleteXmlNodeText(elementname) xmldoc.selectSingleNode("//"&elementname).text ="" end function PublicFunction createElement(ByVal e) Dim root Set root=xmldoc.createElement(e) xmldoc.appendchild(root) End Function PublicFunction createNode(ByVal key,ByVal value) Dim child Set child=xmldoc.createNode("element",key,"") child.text=value xmldoc.documentElement.appendchild(child) Set createNode=child End Function PublicFunction createChildNode(ByVal parentkey,ByVal key,ByVal value) Dim parentNode,childNode Set parentNode=xmldoc.selectSingleNode("//"&parentkey) Set childNode=xmldoc.createNode("element",key,"") childNode.text=value parentNode.appendchild(childNode) Set createChildNode=childNode End Function PublicFunction appendAttribute(ByVal node,ByVal key,ByVal value) Dim thisnode,childNode Set thisnode=xmldoc.selectSingleNode("//"&node) Set childNode=xmldoc.createNode("attribute",key,"") childNode.text=value thisnode.SetAttributeNode(childNode) End Function PublicFunction updateAttribute(ByVal node,ByVal key,ByVal value) Dim thisnode Set thisnode=xmldoc.selectSingleNode("//"&node) thisnode.GetAttributeNode(key).NodeValue=value End Function PublicFunction createAttributeNode(ByVal nodeName,ByVal nodeValue,ByVal key,ByVal value) Dim thisnode Set thisnode=createNode(nodeName,nodeValue) Set attr=xmldoc.createNode("attribute",key,"") attr.text=value thisnode.SetAttributeNode(attr) Set createattributeNode=thisnode End Function PublicFunction getNodesCollection(ByVal key) Dim nodes Set nodes=xmldoc.documentElement.SelectSingleNode("//"&key).ChildNodes Set getNodesCollection=nodes End Function PublicFunction getAttributeCollection(ByVal key) Dim attrs Set attrs=xmldoc.documentElement.SelectSingleNode("//"&key).attributes Set getAttributeCollection=attrs End Function PublicFunction save(ByVal savepath) If savepath&""=""Then xmldoc.save(m_xmlpath) Else xmldoc.save(server.mappath(savepath)) EndIf End Function End Class '==================================================================================================== '取出一个节点的字节点集合 'set objnodes=objdom.documentElement.SelectSingleNode("//people/man").ChildNodes '遍历这个集合 '方法1 'for each element in objnodes ' response.write element.nodename 字节点名 ' response.write element.text 字节点值 'next '方法2 'domlength=objnodes.length 'for i = 0 to domlength-1 ' response.write objnodes.childnodes(i).nodename 字节点名 ' response.write objnodes.childnodes(i).text 字节点值 'next ' ''取出一个节点的属性集合 'set objnodes=objdom.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes '遍历这个集合 'for each element in objnodes ' response.write element.nodename 属性名 ' response.write element.nodevalue 属性值 'next %>
在web层的调用,如下:
Dim xp Set xp=new xmlparser with xp .aync=False .xmlpath="/web/template/news/index.html" Endwith response.write xp.xmlpath