注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小新之家

心灵的放松地点

 
 
 

日志

 
 

asp操作XML基本函数  

2010-07-20 15:37:28|  分类: 学习资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
<%
Dim XmlDoc

'打开XML文件
Function ConnectXml(Path)
    Set XmlDoc=Server.CreateObject("Microsoft.XMLDOM")
    XmlDoc.Async=False
    ConnectXml=XmlDoc.Load(Server.MapPath(Path))
End Function

'关闭XML文件
Function CloseXml(XmlDoc)
    If IsObject(XmlDoc) Then
        Set XmlDoc=Nothing
    End If
End Function

'获取某个节点的元素值:节点对象、节点名称
Function GetNodeValue(SNode,EleName)
    If SNode Is Nothing Then Exit Function
    Set TmpSub=SNode.SelectSingleNode(ELeName)
    If TmpSub Is Nothing Then
        Set TmpSub=SNode.Attributes.GetNamedItem(ELeName)
        If TmpSub Is Nothing Then Exit Function
        TmpRet=TmpSub.Value
    Else
        TmpRet=TmpSub.Text
    End If
    If Not IsNull(TmpRet) Then GetNodeValue=TmpRet
    Set TmpSub=Nothing
End Function

'获取节点所在位置:节点集、节点名称、节点值,返回数值
Function GetIndexByValue(Node,EleName,EleValue)
    If Node Is Nothing Then Exit Function
    For Tmpi=0 To Node.Length-1
        EValue=GetNodeValue(Node(Tmpi),EleName)
        If EValue=EleValue Then
            GetIndexByValue=Tmpi
            Exit Function
        End If
    Next
    GetIndexByValue=-1
End Function

'添加节点或者属性
'DOM对象、节点对象、节点名或者属性名、0节点1属性、有无内容、内容、在某个节点之前插入节点
Function CreateXmlNode(XDoc,NodePos,EleName,Key,IfTxt,Text,TmpIdx)
    Select Case Key
        Case "0"
            Set SubNode=XDoc.CreateElement(EleName)
            If TmpIdx > -1 Then    '在某个节点之前插入新节点
                Set CurNode=NodePos.InsertBefore(SubNode,NodePos.ChildNodes(TmpIdx))
                If IfTxt=1 Then CurNode.text=Text
                Set CreateXmlNode=CurNode
                Set CurNode=Nothing
            Else    '
                If IfTxt=1 Then SubNode.text=Text
                NodePos.AppendChild SubNode
                Set CreateXmlNode=SubNode
            End If
            Set SubNode=Nothing
        Case "1"
            Set AttNode=XDoc.CreateAttribute(EleName)
            If IfTxt=1 Then AttNode.text=Text
            NodePos.Attributes.SetNamedItem AttNode
            Set CreateXmlNode=AttNode
            Set AttNode=Nothing
        Case Else
            
    End Select
End Function

'添加一组节点[相当于组合节点,一次只能插入一组对应节点]:父节点、XML内容、节点位置
Function JoinXmlNode(NodePos,XmlStr,TmpIdx)
    Set NewXmlDoc=Server.CreateObject("Microsoft.XMLDOM")
    NewXmlDoc.LoadXml(XmlStr)
    Set RootNewNode=NewXmlDoc.documentElement
    If TmpIdx > -1 Then
        NodePos.InsertBefore RootNewNode,NodePos.ChildNodes(TmpIdx)
    Else
        NodePos.AppendChild(RootNewNode)
    End If
    Set NewXmlDoc=Nothing
End Function

'编辑某个节点内容:节点、名称、值、节点或者属性
Function EditXmlNode(NodePos,EleName,Text,Key)
    If Key="0" Then    '节点
        Set EleNode=NodePos.SelectSingleNode(EleName)
        EleNode.text=Text
    Else    '属性
        Set EleNode=NodePos.Attributes.GetNamedItem(EleName)
        EleNode.value=Text
    End If
    Set EleNode=Nothing
End Function

'删除节点:父节点、子节点、是否单个节点
Function DelXmlNode(PNode,EleName,IfNode,Key)
    If IfNode="0" Then
        If Key="0" Then    '节点
            Set EleNode=PNode.SelectSingleNode(EleName)
            PNode.RemoveChild EleNode
            Set EleNode=Nothing
        Else    '属性
            PNode.Attributes.RemoveNamedItem(EleName)
        End If
    Else    '删除节点之内所有节点
        PNode.RemoveChild EleName
    End If
End Function
%>
  评论这张
 
阅读(186)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017