• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP XMLDom在服务器端操作XML文件的主要方法和实现
    对于小数据量,xml文件在检索更新上于ACCESS有很多优势。

    我曾经测试过不用数据库,把网站的会员信息,商品数据信息,交易信息,网站定制信息全部存放在三个xml文件中,运行结果十分正常,感觉上比数据库快多了,不过没有作测试,不能确定。

    下面说一下创建,查询,修改等对xml操作的主要方法

    程序代码

    NO.1--建立一个XML数据库data.xml
    复制代码 代码如下:

    ?xml version="1.0"?>
    records>
    record>
    name>caca/name>
    qq>154222225/qq>
    email>root@3ney.com/email>
    /record>
    records>

    NO.2--建立对象CreateObject
    建立data.xml的对象先
    set xmldoc=server.createobjcet("microsoft.xmldom")
    xmldoc.load(server.mappath("data.xml")

    NO.3--选定节点SelectNode
    你想操作哪个Node,必须定位到这个节点是不是,先看看这个data.xml有几个Node??
    用一个递归函数搞定:
    复制代码 代码如下:

    getnodes(xmldoc)

    sub getnodes(node)
    dim i
    response.write("br>b>NodeName:/b>"node.nodename"br>b>NodeTypeString:/b>"node.nodetypestring"br>b>NodeValue:/b>"node.nodevalue"br>b>Text:/b>"node.text"br>b>node.childnodes.length:/b>"node.childnodes.length"p>")

    if node.childnodes.length>0 then
    for i=0 to node.childnodes.length-1
    getnodes(node.childnodes(i))
    next
    end if
    end sub
    用这个函数后,可以看到这个data.xml有10个Node
    这些Node可以很简单的定位:
    xmldoc
    xmldoc.childnodes(0)
    xmldoc.childnodes(1)
    xmldoc.childnodes(1).childnodes(0)
    xmldoc.childnodes(1).childnodes(0).childnodes(0)
    xmldoc.childnodes(1).childnodes(0).childnodes(0).text
    xmldoc.childnodes(1).childnodes(0).childnodes(1)
    xmldoc.childnodes(1).childnodes(0).childnodes(1).text
    xmldoc.childnodes(1).childnodes(0).childnodes(2)
    xmldoc.childnodes(1).childnodes(0).childnodes(2).text
    是不是定位很简单呀,还有个方法,比如定位name>
    xmldoc.selectsinglenode("//name")

    NO.4--给节点赋值(修改节点的值)
    学会了定位节点,利用其属性,就可以修改或者赋值了
    例如,把name>的值caca改为wawa
    xmldoc.selectsinglenode("//name").text="wawa"
    xmldoc.save(server.mappath("data.xml"))
    搞定!
    NO.5--创建新的节点CreatenewNode
    用createelement或者createnode("","","")
    例如:在record下新建个age>,只需要一句就搞定:
    xmldoc.selectsinglenode("//record").appendchild(xmldoc.createelement("age>"))
    给age>赋值
    xmldoc.selectsinglenode("//age").text="20"
    xmldoc.save(server.mappath("data.xml"))
    搞定!
    NO.6--删除一个节点DeleteNode
    你必须明确你想删除的这个节点的父节点,以及这个节点的特征
    例如:删除qq>节点
    xmldoc.selectsinglenode("//record").removechild(xmldoc.selectsinglenode("//qq"))
    例如:删除那个name>=caca的record>
    xmldoc.selectsinglenode("//records").removechild(xmldoc.selectsinglenode("//record[name='caca']))
    xmldoc.save(server.mappath("data.xml"))
    搞定!
    只有能熟练这6条code,用asp控制xml数据库,也就差不多了...
    ========================================================

    '创建DOM对象
    set objDom=server.CreateObject("MicroSoft.XMLDom")

    '取得xml数据
    '方法1 取得xml文件的xml数据
    objDom.load("c:\test.xml")
    '方法2 取得xml数据串的数据
    objDom.loadxml("people>man name="sd"/>/people>")

    '创建一个节点对象
    Set Newnode=objDom.CreateElement("people")
    '给这个节点赴值
    Newnode.Text="人"
    ' 给这个节点添加属性
    Set NewAttribute=objDom.CreateNode("attribute","name","")
    NewAttribute.Text= "张三"
    Newnode.SetAttributeNode NewAttribute
    '给这个节点添加子节点
    Set NewnodeChild=objDom.CreateElement("address")
    Newnode.appendChild NewnodeChild
    '保存这个节点对象
    objDom.appendChild Newnode
    objDom.save("c:\test.xml")

    '查找一个节点对象
    set objtofind=objdom.documentElement.SelectSingleNode("//people/man")
    '取出这个节点对象的 节点名,节点值,某个属性值,和全部的xml
    nodename=objtofind.nodename
    nodevalue=objtofind.text
    objtofind.GetAttributeNode("name").NodeValue '属性名为name的属性值

    '取出一个属性节点对象
    set objattrtofind=objdom.documentElement.SelectSingleNode("//people/man"). GetAttributeNode("name")
    '取出这个节点的属性名,属性值
    nodeattrname=objattrtofind.nodename
    nodeattrvalue=objattrtofind.nodevalue

    '删除一个节点对象
    set objnode=objdom.documentElement.SelectSingleNode("//people/man") '要删除的节点
    set objparentnode=objdom.documentElement.SelectSingleNode("//people") '要删除的节点的父节点
    objparentnode.removeChild objnode

    '取出一个节点的字节点集合
    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

    等能够熟练的运用xmldom对象来操作xml文件了,就可以享受xmlhttp对象来实现asp下的许多功能了。

    ------------------------------------------------------------------------------------------

    虽然asp只能简单的操作XML文件,可是对于一般程序开发者来说就已经足够。
    之前,XML语言非常的少接触,后来慢慢的,发觉XML在存储数据上有很多的方便。虽然安全性不好(个人认为),可是对于一般的数据存储的确 是一个非常不错的选择。
    今天因为在一个网站上需要用到XML,我在这里就做一些总结(后期将会用到):
    ==============
    首先,先整理ASP读取XML文件
    default.asp的代码
    %
    dim node,i,nodecount
    set Doc = CreateObject("Microsoft.XMLDOM")
    Doc.async = false
    Doc.load(Server.MapPath("data.xml"))
    set root = Doc.documentElement
    set nodeLis = root.childNodes
    nodeCount = nodeLis.length
    For i=1 to nodeCount
    set node = nodeLis.nextNode()
    set cost = node.attributes.getNamedItem("cost")
    %>
    第 %=i%> 条记录:
    table width="50%" border="1">
    tr>
    td width="43" rowspan="2">img src="%=node.selectSingleNode("img").text%>"/>/td>
    td width="46">书名/td>
    td width="48">出版社/td>
    td width="42">价格/td>
    /tr>
    tr>
    td>
    %=node.selectSingleNode("name").text%>
    /td>
    td>
    %=node.selectSingleNode("publisher").text%>
    /td>
    td>
    %= cost.text%>
    /td>
    /tr>
    /table>
    %
    Next
    %>
    ====================
    接下来就是Data.xml数据内容
    ?xml version="1.0" encoding="UTF-8"?>
    data>
    book cost="56">
    name>Dreamweaver/name>
    publisher>中国铁路出版社/publisher>
    img>img/dw.jpg/img>
    /book>
    book cost="62">
    name>Flash/name>
    publisher>中国铁路出版社/publisher>
    img>img/flash.jpg/img>
    /book>
    book cost="48">
    name>Firweorks/name>
    publisher>中国铁路出版社/publisher>
    img>img/fw.jpg/img>
    /book>
    /data>
    您可能感兴趣的文章:
    • asp下将数据库中的信息存储至XML文件中
    • asp access数据库并生成XML文件范例
    • Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
    • ASP XML操作类代码
    • ASP读取XML实例 优酷专辑采集程序 雷锋版
    • Asp操作Xml的精炼类,含示例代码
    • ASP.NET+XML打造网络硬盘原理分析
    • asp xmlhttp下载一句话
    • asp.net TreeView与XML三步生成列表树
    • Asp 解析 XML并分页显示源码
    • ASP.NET中XML转JSON的方法实例
    • ASP.net处理XML数据实例浅析
    • ASP.NET XmlDocument类详解
    • asp.net中XML如何做增删改查操作
    • asp控制xml数据库的经典代码
    上一篇:ASP 高亮显示不区分大小写的关键字
    下一篇:Microsoft VBScript 运行时错误 错误 '800a0005' 无效的过程调用或参数: 'chr'
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP XMLDom在服务器端操作XML文件的主要方法和实现 ASP,XMLDom,在,服务器,端,操作,