分享
 
 
 

Javascript里使用Dom操作Xml-asp.net入门笔记(十一)

王朝asp·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

Javascript里使用Dom操作Xml

一.本笔记使用的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;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有