这节讲common中,xmlparse.class.asp,即xml解析类的实现
1)实现xml节点的查找,添加,删除,修改
关于asp多层体系架构的思考(3)<%
关于asp多层体系架构的思考(3)Class xmlparser
关于asp多层体系架构的思考(3)    
关于asp多层体系架构的思考(3)    
Private m_async
关于asp多层体系架构的思考(3)    
Private m_xmlpath
关于asp多层体系架构的思考(3)    
Private xmldoc
关于asp多层体系架构的思考(3)    
Private fso
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Sub class_initialize
关于asp多层体系架构的思考(3)        
Set xmldoc=server.createobject("microsoft.xmldom")
关于asp多层体系架构的思考(3)        
Set fso=CreateObject("Scripting.FileSystemObject")
关于asp多层体系架构的思考(3)    
End Sub 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Sub class_teminate
关于asp多层体系架构的思考(3)        
Set xmldoc=Nothing 
关于asp多层体系架构的思考(3)        
Set fso=Nothing 
关于asp多层体系架构的思考(3)    
End Sub 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Property Get xmlpath
关于asp多层体系架构的思考(3)        xmlpath
=m_xmlpath
关于asp多层体系架构的思考(3)    
End Property 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Property Let xmlpath(ByVal value)
关于asp多层体系架构的思考(3)        
If Not fso.FileExists(server.mappath(value)) Then
关于asp多层体系架构的思考(3)            response.write 
"文件不存在!"
关于asp多层体系架构的思考(3)            response.End 
关于asp多层体系架构的思考(3)        
Else
关于asp多层体系架构的思考(3)            m_xmlpath
=server.mappath(value)            
关于asp多层体系架构的思考(3)        
End If         
关于asp多层体系架构的思考(3)    
End Property 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Property Get async
关于asp多层体系架构的思考(3)        async
=m_async
关于asp多层体系架构的思考(3)    
End Property 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Property Let async(ByVal value)
关于asp多层体系架构的思考(3)        
If value=False Then 
关于asp多层体系架构的思考(3)            m_async
=False
关于asp多层体系架构的思考(3)        
else
关于asp多层体系架构的思考(3)            m_async
=True 
关于asp多层体系架构的思考(3)        
End If 
关于asp多层体系架构的思考(3)    
End Property 
关于asp多层体系架构的思考(3)    
关于asp多层体系架构的思考(3)    
Public Sub load()
关于asp多层体系架构的思考(3)        xmldoc.async
=m_async
关于asp多层体系架构的思考(3)        xmldoc.load m_xmlpath
关于asp多层体系架构的思考(3)    
End Sub 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function selectXmlNodeText(elementname) 
关于asp多层体系架构的思考(3)        elementname
="//"&elementname 
关于asp多层体系架构的思考(3)        temp
=xmldoc.selectSingleNode(elementname).text 
关于asp多层体系架构的思考(3)        selectXmlNodeText
= server.htmlencode(temp) 
关于asp多层体系架构的思考(3)    
End Function
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function insertXmlNodeText(befelementname,elementname,elementtext) 
关于asp多层体系架构的思考(3)        
dim befelement,element 
关于asp多层体系架构的思考(3)        
set befelement=xmldoc.selectSingleNode("//"&befelementname) 
关于asp多层体系架构的思考(3)        
set element= xmldoc.createelement(elementname) 
关于asp多层体系架构的思考(3)        befelement.insertBefore element,befelement.firstchild 
关于asp多层体系架构的思考(3)        element.text
=elementtext 
关于asp多层体系架构的思考(3)    
end function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function updateXmlNodeText(elementname,newelementtext) 
关于asp多层体系架构的思考(3)        
dim element 
关于asp多层体系架构的思考(3)        
set element=xmldoc.selectSingleNode("//"&elementname) 
关于asp多层体系架构的思考(3)        element.text
=newelementtext 
关于asp多层体系架构的思考(3)    
end function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function deleteXmlNodeText(elementname) 
关于asp多层体系架构的思考(3)        xmldoc.selectSingleNode(
"//"&elementname).text ="" 
关于asp多层体系架构的思考(3)    
end function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function createElement(ByVal e)
关于asp多层体系架构的思考(3)        
Dim root 
关于asp多层体系架构的思考(3)        
Set root=xmldoc.createElement(e)
关于asp多层体系架构的思考(3)        xmldoc.appendchild(root)
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function createNode(ByVal key,ByVal value)
关于asp多层体系架构的思考(3)        
Dim child
关于asp多层体系架构的思考(3)        
Set child=xmldoc.createNode("element",key,"")
关于asp多层体系架构的思考(3)        child.text
=value
关于asp多层体系架构的思考(3)        xmldoc.documentElement.appendchild(child)
关于asp多层体系架构的思考(3)        
Set createNode=child
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)    
关于asp多层体系架构的思考(3)    
Public Function createChildNode(ByVal parentkey,ByVal key,ByVal value)
关于asp多层体系架构的思考(3)        
Dim parentNode,childNode
关于asp多层体系架构的思考(3)        
Set parentNode=xmldoc.selectSingleNode("//"&parentkey)
关于asp多层体系架构的思考(3)        
Set childNode=xmldoc.createNode("element",key,"")
关于asp多层体系架构的思考(3)        childNode.text
=value
关于asp多层体系架构的思考(3)        parentNode.appendchild(childNode)
关于asp多层体系架构的思考(3)        
Set createChildNode=childNode
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function appendAttribute(ByVal node,ByVal key,ByVal value)
关于asp多层体系架构的思考(3)        
Dim thisnode,childNode
关于asp多层体系架构的思考(3)        
Set thisnode=xmldoc.selectSingleNode("//"&node)
关于asp多层体系架构的思考(3)        
Set childNode=xmldoc.createNode("attribute",key,"")
关于asp多层体系架构的思考(3)        childNode.text
=value
关于asp多层体系架构的思考(3)        thisnode.SetAttributeNode(childNode)
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function updateAttribute(ByVal node,ByVal key,ByVal value)
关于asp多层体系架构的思考(3)        
Dim thisnode
关于asp多层体系架构的思考(3)        
Set thisnode=xmldoc.selectSingleNode("//"&node)
关于asp多层体系架构的思考(3)        thisnode.GetAttributeNode(key).NodeValue
=value
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function createAttributeNode(ByVal nodeName,ByVal nodeValue,ByVal key,ByVal value)
关于asp多层体系架构的思考(3)        
Dim thisnode
关于asp多层体系架构的思考(3)        
Set thisnode=createNode(nodeName,nodeValue)
关于asp多层体系架构的思考(3)        
Set attr=xmldoc.createNode("attribute",key,"")
关于asp多层体系架构的思考(3)        attr.text
=value
关于asp多层体系架构的思考(3)        thisnode.SetAttributeNode(attr)
关于asp多层体系架构的思考(3)        
Set createattributeNode=thisnode
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)    
关于asp多层体系架构的思考(3)    
Public Function getNodesCollection(ByVal key)
关于asp多层体系架构的思考(3)        
Dim nodes
关于asp多层体系架构的思考(3)        
Set nodes=xmldoc.documentElement.SelectSingleNode("//"&key).ChildNodes
关于asp多层体系架构的思考(3)        
Set getNodesCollection=nodes
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function getAttributeCollection(ByVal key)
关于asp多层体系架构的思考(3)        
Dim attrs
关于asp多层体系架构的思考(3)        
Set attrs=xmldoc.documentElement.SelectSingleNode("//"&key).attributes
关于asp多层体系架构的思考(3)        
Set getAttributeCollection=attrs
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)    
Public Function save(ByVal savepath)
关于asp多层体系架构的思考(3)        
If savepath&""="" Then 
关于asp多层体系架构的思考(3)            xmldoc.save(m_xmlpath)
关于asp多层体系架构的思考(3)        
Else
关于asp多层体系架构的思考(3)            xmldoc.save(server.mappath(savepath))
关于asp多层体系架构的思考(3)        
End If 
关于asp多层体系架构的思考(3)    
End Function 
关于asp多层体系架构的思考(3)
End Class
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)
关于asp多层体系架构的思考(3)
'====================================================================================================
关于asp多层体系架构的思考(3)
    '取出一个节点的字节点集合
关于asp多层体系架构的思考(3)
    'set objnodes=objdom.documentElement.SelectSingleNode("//people/man").ChildNodes
关于asp多层体系架构的思考(3)
    '遍历这个集合
关于asp多层体系架构的思考(3)
    '方法1 
关于asp多层体系架构的思考(3)
    'for each element in objnodes
关于asp多层体系架构的思考(3)
    '    response.write element.nodename 字节点名
关于asp多层体系架构的思考(3)
    '    response.write element.text 字节点值
关于asp多层体系架构的思考(3)
    'next
关于asp多层体系架构的思考(3)
    '方法2
关于asp多层体系架构的思考(3)
    'domlength=objnodes.length
关于asp多层体系架构的思考(3)
    'for i = 0 to domlength-1
关于asp多层体系架构的思考(3)
    '    response.write objnodes.childnodes(i).nodename 字节点名
关于asp多层体系架构的思考(3)
    '    response.write objnodes.childnodes(i).text 字节点值
关于asp多层体系架构的思考(3)
    'next
关于asp多层体系架构的思考(3)
    '
关于asp多层体系架构的思考(3)
    ''取出一个节点的属性集合
关于asp多层体系架构的思考(3)
    'set objnodes=objdom.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes
关于asp多层体系架构的思考(3)
    '遍历这个集合
关于asp多层体系架构的思考(3)
    'for each element in objnodes
关于asp多层体系架构的思考(3)
    '    response.write element.nodename 属性名
关于asp多层体系架构的思考(3)
    '    response.write element.nodevalue 属性值
关于asp多层体系架构的思考(3)
    'next
关于asp多层体系架构的思考(3)
%>


在web层的调用,如下:
关于asp多层体系架构的思考(3)Dim xp
关于asp多层体系架构的思考(3)
Set xp=new xmlparser
关于asp多层体系架构的思考(3)
with xp
关于asp多层体系架构的思考(3)    .aync
=False
关于asp多层体系架构的思考(3)    .xmlpath
="/web/template/news/index.html"
关于asp多层体系架构的思考(3)
End with
关于asp多层体系架构的思考(3)response.write xp.xmlpath

恳请批评和指正

相关文章: