一.本笔记使用的Xml文件

二.IXMLDOMDocument/DOMDocument简介   

2.1 属性

2.1.1  parseError

2.1.2  async.

2.1.3  xml

2.1.4  text 3

2.1.5  attributes

2.1.6  nodeName

2.1.7  documentElement

2.1.8  nextSibling

2.1.9  childNodes

2.1.10  firstChild

2.1.11  lashChild

2.2 方法

2.2.1  loadXML

2.2.2  load

2.2.3  selectSingleNode

2.2.4  selectNodes

2.2.5  getElementsByTagName

2.2.6  hasChildNodes

三.例子

一.本笔记使用的Xml文件

<?xml version="1.0"?>

<book level="1">

<Name>c++</Name>

<Price>20</Price>

<info>

<k>1</k>

</info>

<info>

<k>2</k>

</info>

</book>

在asp.net下实现代码:

string str = Server.MapPath("test1.xml");

XmlTextWriter xmlWriter = new XmlTextWriter(str,null);

xmlWriter.Formatting = System.Xml.Formatting.Indented;

xmlWriter.WriteStartDocument();

xmlWriter.WriteStartElement("book");

xmlWriter.WriteAttributeString("level","1");

xmlWriter.WriteElementString("Name","c++");

xmlWriter.WriteElementString("Price","20");

xmlWriter.WriteStartElement("info");

xmlWriter.WriteElementString("k","1");

xmlWriter.WriteEndElement();

xmlWriter.WriteStartElement("info");

xmlWriter.WriteElementString("k","2");

xmlWriter.WriteEndElement();

xmlWriter.WriteEndElement();

xmlWriter.WriteEndDocument();

xmlWriter.Close();

二.IXMLDOMDocument/DOMDocument简介

 

2.1 属性

2.1.1  parseError

Returns an IXMLDOMParseError object that contains information about the last parsing error

返回解析错误时的一个对象。

重要的有parseError.errorCode,parseError.reason

如果load时路径不对,会返回“系统未找到指定的对象”的错误

2.1.2  async

Specifies whether asynchronous download is permitted

是否允许异步下载,布尔值

2.1.3  xml

Contains the XML representation of the node and all its descendants. Read-only.

该点及下面派生的所有点的全部信息,只读如果要求book点的xml,返回“<book level="1"><Name>c++</Name><Price>20</Price><info><k>1</k></info><info><k>2</k></info></book>”,如果Name的xml,返回“<Name>c++</Name>”

2.1.4  text

Represents the text content of the node or the concatenated text representing the node and its descendants. Read/write

该点及下面派生的所有点的全部节点值,可读可写

<price>20</price>

则text为20

"Name"节点的text为"c++"

2.1.5  attributes

Contains the list of attributes for this node

返回属性的集合。

2.1.6  nodeName

Returns the qualified name for attribute, document type, element, entity, or notation nodes. Returns a fixed string for all

other node types. Read-only

该节点名称

"Name"节点的nodeName为"Name","book"节点的nodeName为"book"

2.1.7  documentElement

Contains the root element of the document

xml的根节点

上面的xml的根节点为"book"

2.1.8  nextSibling

Contains the next sibling of the node in the parent's child list. Read-only.

下一个兄弟节点,只读

2.1.9  childNodes

Contains a node list containing the child nodes

所有的子节点。

2.1.10  firstChild

Contains the first child of the node

第一个子节点

2.1.11  lastChild

Returns the last child node

最后一个子节点

2.2 方法

2.2.1  loadXML

Loads an XML document using the supplied string

2.2.2  load

Loads an XML document from the specified locati

参数的路径为服务器端的,是相对路径

2.2.3  selectSingleNode

Applies the specified pattern-matching operation to this node's context and returns the first matching node

返回第一个匹配的项

2.2.4  selectNodes

Applies the specified pattern-matching operation to this node's context and returns the list of matching nodes as IXMLDOMNodeList

符合条件的所有项。

2.2.5  getElementsByTagName

Returns a collection of elements that have the specified name

返回与元素名匹配的一个node的集合

2.2.6  hasChildNodes

Provides a fast way to determine whether a node has children

判断是否含有子节点

返回值为bool值

三.例子

 

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");

xmlDoc.async = false;

xmlDoc.load("test\\test1.xml");

if (xmlDoc.parseError.errorCode!=0)

{

var error = xmlDoc.parseError;

alert(error.reason)

return;

}

var root = xmlDoc.documentElement;   //根节点

Form1.test1.value = root.xml;

/*结果如下:

<book level="1"><Name>c++</Name><Price>20</Price><info><k>1</k></info><info><k>2</k></info></book>*/

Form1.test1.value = root.nodeName;  //结果为"book"

var att = root.attributes;  //得到该点下所有属性的集合

var str = "";

for (var i=0; i<att.length; i++)

{

str += att.item(i).nodeName+":"+att.item(i).text;

}

Form1.test1.value = str;  //只有一个属性,所以结果为“level:1”

var fNode;

var lNode;

var nextSibling;

fNode = root.firstChild;   //第一个子节点Name

lNode = root.lastChild;    //最后一个子节点 info

nextSibling = fNode.nextSibling;  //第一个子节点Name的后一个兄弟节点,即Price

str = fNode.nodeName + ":" + fNode.text;  //结果:"Name:c++"

str = lNode.nodeName + ":" + lNode.text;  //结果为:"info:2"

str = nextSibling.nodeName + ":"  + nextSibling.text;  //结果为:"Price:20"

var nodeList;

str = "";

nodeList = xmlDoc.selectNodes("//info");  //查找元素名为"info"的节点

for (var j=0; j<nodeList.length; j++)  //有两个info节点

{

var infoNode = nodeList.item(j);

var cldNodes = infoNode.childNodes;  //info节点的子节点集

for (var k=0; k<cldNodes.length; k++)

{

str += cldNodes.item(k).nodeName + ":" + cldNodes.item(k).text + " ";

}

//结果“k:1 k:2 ”

}

str = "";

var sNode;

sNode = xmlDoc.selectSingleNode("//info"); //找到第一个和"info"匹配的

var scldNodes = sNode.childNodes;  //info节点的子节点集

for (var t=0; t<scldNodes.length; t++)

{

str += scldNodes.item(t).nodeName + ":" + scldNodes.item(t).text + " ";

}

//结果“k:1”

Form1.test1.value = str;

转载于:https://www.cnblogs.com/goody9807/archive/2006/06/12/424031.html

Javascript里使用Dom操作Xml相关推荐

  1. 用JavaScript语言通过DOM遍历XML文档

    实验结果要求如下: 解决步骤: 1.  首先是布局,左边用表格比较方便,右边是个div块. 2.  嵌入JavaScript脚本,由易到难,写定义全部显示的功能函数.显示姓名功能函数,显示属性功能函数 ...

  2. JavaScript(二)之DOM 操作

    JavaScript之DOM 操作 一.DOM 获取 二.添加元素 三.修改元素 四.删除元素 五.Web Storage 六.定时任务和延时操作 一.DOM 获取   文档对象模型简称 DOM,DO ...

  3. javascript 常用的dom操作及源生事件

    javascript dom操作及源生事件 获取dom节点 操作dom节点 源生事件 -- 绑定.解除事件 源生事件 -- 事件派送 获取dom节点 document.getElementById() ...

  4. PHP通过DOM操作XML

    属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definition 以DTD或XML模式给出的节 ...

  5. JavaScript入门篇 - DOM操作

    认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法. DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代 ...

  6. Dom操作xml的常用方法

    (Dom的全部方法和属性可到vs的对象浏览器察看) '创建DOM对象 set objDom=server.CreateObject("microsoft.xmldom") '取得x ...

  7. w3c dom操作Xml时从加入另一个XML文件的一个元素

    同时读取两个XML文件,如果需要把一个XML 文件中的某个特定元素的内容插入到另外一个XML文件中时,要用importNode()方法,具体使用例子如下: import java.io.ByteArr ...

  8. JavaScript事件处理与DOM操作练习题

    1.利用onblur事件实现文本框中英文字母全部转换成大写,效果如下所示 代码如下: 文本框中输入:<input type="text" id="t1" ...

  9. JavaScript教程之DOM和BOM

    一:DOM操作 ##1. 介绍 ## dom: document object model 文档对象模型 DOM可以让我们通过javascript语言对html文档进行增.删.改.查操作. 为了方便j ...

最新文章

  1. 叛乱怎么自定义服务器,» 叛乱:沙漠风暴 服务器安装Mod教程
  2. mysql训练逻辑的题_全国计算机等级考试二级教程mysql复习题练习题.docx
  3. 命令查看java的class字节码文件、verbose、synchronize、javac、javap
  4. TestNG方法測试及注意要点 代码及配置具体解释(解决testng方法不运行问题)
  5. django的模板系统过滤器笔记
  6. Poj 1166 The Clocks(bfs)
  7. [Win11]解决PS/2标准键盘带感叹号,笔记本键盘无法使用。代码19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个
  8. 机器学习数学基础二:泰勒公式与拉格朗日
  9. ftp 227 entering passive mode
  10. 冠军团队访谈录|第三届全国人工智能大赛
  11. YOLOV5改进||YOLOV5+GSConv+Slim Neck
  12. 阿里云人脸对比API使用
  13. 怎么写一个php脚本_php脚本怎么写
  14. 什么是IaaS、PaaS和SaaS
  15. JMX Connectors
  16. JS 逆向的时候 Python 如何调用 JavaScript 代码?「建议收藏哦!」
  17. R语言灰色关联分析法
  18. 虚拟机共享文件夹看不到问题
  19. 关于如何学习日语的最快方法
  20. 紧扣时髦潮水 OPPO U701珍珠红亮相

热门文章

  1. LeetCode 1945. 字符串转化后的各位数字之和
  2. LeetCode 1616. 分割两个字符串得到回文串
  3. LeetCode 1216. 验证回文字符串 III(DP)
  4. Pandas入门3(dtype+fillna+replace+rename+concat+join)
  5. LeetCode 1262. 可被三整除的最大和(DP)
  6. LeetCode 26. 删除排序数组中的重复项
  7. micropython webrepl_4-5 MicroPython WebREPL 命令行交互环境设置-2 接入点模式
  8. Tensorflow线程队列与IO操作
  9. textlayout Java_Java TextLayout.getBounds方法代码示例
  10. 论文浅尝 | AAAI2020 - 基于规则的知识图谱组合表征学习