Microsoft.XMLDOM相关资料

Microsoft.XMLDOM相关资料

[转] http://www.abasp.net/article/124.htm
'取得根节点
set dom=CreateObject("microsoft.xmldom")
dom.async=false
dom.load "c:\user.xml" 

set book1=rootNode.childNodes(1)
book1.ownerDocument 返回Document节点,指向XML文档本身
book1.previousSibling 前一个节点
book1.parentNode 父节点
book1.firstChild 第一个子节点
book1.lastChild 最后一个子节点
book1.childNodes 子节点集合 

'添加节点
set node=rootNode.childNodes.item(0)
set newNode=myDocument.createElement("publisher")
set rtnNode=node.insertBefore(newNode,node.lastChild)
set textNode=myDocument.createTextNode("人民邮电出版社")
node.childNodes.item(1).appendChild(textNode) 

'删除节点
set node=root.childNodes.item(0)
set oldNode=node.removeChild(node.childNodes.item(4)) 

'修改节点 
set node=root.childNodes.item(0)
node.nodeValue="158" 

'常用DOM的方法 
createAttribute(属性的名字) 创建一个属性节点。然后可以用setAttributeNode方法把该属性设置为某个元素的属性
createCDATASection(内容) 创建一个CDATA节点。
createMessage(内容) 创建一个注释节点,值就是参数内容
createElement(名字) 创建元素节点
createEntityReference(名字) 创建一个实体引用节点,如果被引用的实体是已知的,那么该实体引用节点和相应的实体节点有同样的子节点集
createProcessingInstruction(处理指令的目标部分,处理指令的数据部分) 创建一个具有指定名字和数据的处理指令节点
createTextNode(内容) 创建一个具有指定内容的文本节点 
Node的常用属性 
attributes
childNodes 子节点的集合
firstChild 第一个子节点 
lastChild 最后一个子节点
previousSibling 当前节点的前驱节点
nextSibling 当前节点的后继节点
nodeName 当前节点的名字
nodeType 节点类型
nodeValue 节点的值
parentNodes 父节点 
Node方法
appendChild(newChild) 添加到所有子节点的最后,返回添加的节点
cloneNode(boolean deep) 复制当前节点,复制产生的节点没有父节点,返回复制的节点
hasChildNodes 无参数,判断是否有子节点
createElement 创建元素节点
insertBefore(newChild,refChild) 把节点newChild插入到当前节点的子节点refChild之前。返回插入的节点
removeChild(oldChild) 把子节点oldChild删除,并返回oldChild节点。
replaceChild(newChild,oldChild) 替换节点,返回被删除的节点 
NodeList
是动态的,对文档的改变会直接反映到相关的NodeList对象中。
属性:
length
Item(0)-Item(nodeList.length-1) 
NamedNodeMap
包含的节点是无序的。表示节点和唯一名字的对应关系。
属性length
方法:
getNamedItem(name) 返回给定名称的节点
item(0...) 
removeNamedItem(name) 删除给定名称的节点
setNamedItem(name) 把给定节点名的节点添加到当前节点集中,如果改名字节点已经存在,替换 
ASP通过XMLDom在服务器端操作XML文件的主要方法和实现
对于小数据量,xml文件在检索更新上于ACCESS有很多优势。
我曾经测试过不用数据库,把网站的会员信息,商品数据信息,交易信息,网站定制信息全部存放在三个xml文件中,运行结果十分正常,感觉上比数据库快多了,不过没有作测试,不能确定。
下面说一下创建,查询,修改等对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

转载于:https://www.cnblogs.com/shelley/archive/2009/10/13/1582515.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110855.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • iPhone使用教程_iphone基础使用

    iPhone使用教程_iphone基础使用iPhone史上最全的使用教程iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别这几天看见好多新人问这几个词的含义及区别。我在这儿说说我的看法,不是官方解释,不懂的学习一下,懂的绕道,如有错误,敬请指正!第一次买来时或恢复官方固件后,iPhone会处于那种只能拨打紧急电话状态,不能使用其它功能,如果要使用其它功能,就必须进行一项操作,那就是“激活”。一般有锁版的只有使…

    2022年9月15日
  • Nas性能测试工具-vdbench

    Nas性能测试工具-vdbench版本:vdbench50406简介:vdbench是一个I/O工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。配置参数:大文件设置深度为2,广度为10,每个文件夹下的文件数量为400,每个文件的大小为10M,采用10个线程并发,顺序选择文件,随机读写,DirectIO的形式处理1M的数据 …

    2022年5月12日
  • LeetCode: Distinct Subsequences [115]

    LeetCode: Distinct Subsequences [115]

    2022年1月2日
  • java struts2 漏洞_struts2漏洞列表

    java struts2 漏洞_struts2漏洞列表【官方ID】S2-001【危害等级】高【受影响版本】WebWork2.1(开启altSyntax)WebWork2.2.0–WebWork2.2.5Struts2.0.0–Struts2.0.8【漏洞描述】altSyntax特性默认不开启,开启后,允许在文本串中注入OGNL表达式,且注入的表达式被逐层递归执行。攻击者可以在HTML中text域输入OGNL表达式,当form在服务器…

    2022年7月19日
  • Linux内存映射——mmap

    Linux内存映射——mmap一mmap系统调用1.内存映射所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率。Linux提供了mmap()函数,用来映射物理内存。在驱动程序中,应用程序以设备文件为对象,调用mmap()函数,内核进行内存映射的准备工作,生成vm_area_struct结构体,然后调用设备驱动程序中定义的mmap函数。2.

    2022年6月16日
  • pycharm 2021.11激活码【2021最新】

    (pycharm 2021.11激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号