jasmine214--love

只有当你的内心总是充满快乐、美好的愿望和宁静时,你才能拥有强壮的体魄和明朗、快乐或者宁静的面容。
posts - 731, comments - 60, trackbacks - 0, articles - 0

XML解析--XMLDoc对象的方法总汇

Posted on 2010-06-25 11:00 幻海蓝梦 阅读(2091) 评论(0)  编辑  收藏 所属分类: JS

原文:http://hi.baidu.com/superfeng/blog/item/1575ff033a66f6743812bbb0.html

http://www.blogjava.net/zhyiwww/archive/2007/05/29/120741.html

首先,通过 ajax url 提交请求,来取得远程 xml 数据。

var xmlDoc = response.responseXML;

此时,你得到 了 xml 的文档对象。

那么你如何解 析文档呢?

也就是,如何 取得一个结点对象呢?

var allPoi = xmlDoc.selectNodes( "/schemes/scheme/line/stops/stop/points/point" );

通过 selectNodes 方法,我们可 以得到所有的符合这个路径的所有子节点。

如果 allPoi得到的是叶子节点的话,那么我们就可以通过allPoi[0].text来取得节点的值.

下面,我们就 可以遍历其对象了:

    for ( var i=0;i length ;i++){

       alert (pois[i].selectSingleNode( "iLongitude" ).text);      

    }

selectSingleNode 可以取得其中 一个子节点,通过 text 属性来取得其 对应的字符串值。

 

取得文档后, 我们解析 xml 的时候也可以 通过其他的方法,比如:

var stopsGroup = xmlDoc.getElementsByTagName("stops")

这种办法也一 样可以取到你想要取得所有某节点对象。

之后,你就可 以通过和上面相同的方法来遍历。以进一步取得其子节点的值。


createTextNode 方法

作    用

建立一个新的text 节点,并包含指定的数据。

基本语法

xmlDocument.createTextNode(data);

说    明

data 是一个代表新text 节点的字符串。一个新的text 节点被建立,但是没有加到文件树中。若要将节点加到文件树中,必须使用插入方法,例如:insertBefore,replaceChild或 appendChild。

范    例

objNewTextNode = xmlDoc.createTextNode("This is a text node.");
alert(objNewTextNode.xml);

getElementsByTagName 方法

作    用

传回指定名称的元素集合。

基本语法

objNodeList = xmlDocument.getElementsByTagName(tagname);

说    明

tagname 是一个字符串,代表找到的元素卷标名称。使用tagname "*"传回文件中所有找到的元素。

范    例

objNodeList = xmlDoc.getElementsByTagName("*");
alert(objNodeList.item(1).xml);

haschildnodes 方法

作    用

如果指定的节点有一个或更多子节点,传回值为true。

基本语法

boolValue = xmlDocumentNode.hasChildNodes() ;

说    明

如果此节点有子节点传回值为true,否则传回false 值。

范    例

boolValue = xmlDoc.documentElement.hasChildNodes();
alert(boolValue);

insertBefore 方法

作    用

在指定的节点前插入一个子节点。

基本语法

objDocumentNode = xmlDocumentNode.insertBefore(newChild,refChild);

说    明

newChild 是一个包含新子节点地址的对象,refChild 是参照节点的地址。新子节点被插到参照节点之前。如果refChild 参数没有包含在内,新的子节点会被插到子节点列表的末端。

范    例

objRefNode = xmlDoc.documentElement;
alert(xmlDoc.xml);
objNewNode = xmlDoc.createComment("This is a comment");
xmlDoc.insertBefore(objNewNode, objRefNode);
alert(xmlDoc.xml);

load 方法

作    用

表示从指定位置加载的文件。

基本语法

boolValue = xmlDocument.load(url);

说    明

url 包含要被加载档案的URL 的字符串。假如文件加载成功,传回值即为true。若加载失败,传回值为false。

范    例

boolValue = xmlDoc.load("LstA_1.xml");
alert(boolValue);

loadXML 方法

作    用

加载一个XML 文件或字符串的片断。

基本语法

boolValue = xmlDocument.loadXML(xmlString);

说    明

xmlString 是包含XML 文字码的字符串。

范    例

xmlString = "Hello!";
boolValue = xmlDoc.loadXML(xmlString);
alert(boolValue);

nodeFromID 方法

作    用

传回节点ID 符合指定值的节点。

基本语法

xmlDocumentNode = xmlDocument.nodeFromID(idString);

说    明

idString 是一个包含ID 值的字符串。符合的节点必定是ID 型态。若符合,将传回一个对象;若操作失败,则传回null。

范    例

objDocumentNode = xmlDoc.nodeFromID("TO");
alert(objDocumentNode);

parsed 方法

作    用

会验证该指定的节点(node)及其衍生的子节点(descendants)是否已被解析过。

基本语法

boolValue = xmlDocumentNode.parsed();

说    明

如果全部的节点都已经被解析过了,则传回值为ture;如果有任何一个节点尚未被解析,传回值则为false。

范    例

currNode = xmlDoc.documentElement.childNodes.item(0);
boolValue = currNode.parsed();
alert(boolValue);

removeChild 方法

作    用

会将指定的节点从节点清单中移除。

基本语法

objDocumentNode = xmlDocumentNode.removeChild(oldChild);

说    明

oldChild 为一个包含要被移除的节点对象。

范    例

objRemoveNode = xmlDoc.documentElement.childNodes.item(3);
alert(xmlDoc.xml);
xmlDoc.documentElement.removeChild(objRemoveNode);
alert(xmlDoc.xml);

replaceChild 方法

作    用

置换指定的旧子节点为提供的新子节点。

基本语法

objDocumentNode = xmlDocumentNode.replaceChild(newChild,oldChild);

说    明

newChild 为包含新子节点的对象。如果此参数为null,则此旧子节点会被移除而不会被取代。oldChild 为包含旧子节点的对象。

范    例

objOldNode = xmlDoc.documentElement.childNodes.item(3);
objNewNode = xmlDoc.createComment("I've replaced the BCC element.");
alert(xmlDoc.xml);
xmlDoc.documentElement.replaceChild(objNewNode,objOldNode);
alert(xmlDoc.xml);

selectNodes 方法

作    用

传回所有符合提供样式(pattern)的节点。

基本语法

objDocumentNodeList = xmlDocumentNode.selectNodes(patternString);

说    明

patternString 为一包含XSL 样式的字符串。此方法会传回节点清单对象,包含符合样式的节点。如果没有符合的节点,则传回空的清单列表。

范    例

objNodeList=xmlDoc.selectNodes("/");
alert(objNodeList.item(0).xml);

selectSingleNode 传回第一个符合样式的节点

作    用

传回第一个符合样式的节点。

基本语法

objDocumentNode = xmlDocumentNode.selectSingleNode(patternString);

说    明

patternString 为一包含XSL 样式的字符串。此方法会传回第一个符合的节点对象,如果没有符合的节点,则传回null。

范    例

objNode = xmlDoc.selectSingleNode("EMAIL/BCC");
alert(objNode.xml);

transformNode 方法

作    用

使用提供的样式表来处理该节点及其子节点。

基本语法

strTransformedDocument = xmlDocumentNode.transformNode(stylesheet);

说    明

stylesheet 为一XML 文件或是片断包含负责节点转换工作的XSL 元素。此方法会传回一包含转换结果的字符串。

范    例

var style = new ActiveXObject("Microsoft.XMLDOM");
style.load("LstA_49.xsl");
strTransform = xmlDoc.transformNode(style.documentElement);
alert(strTransform);


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问