国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript里使用Dom操作Xml

2019-11-21 02:30:57
字體:
來源:轉載
供稿:網友
一.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("http://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("http://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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 时尚| 凤山县| 墨江| 平远县| 长汀县| 东乡族自治县| 白河县| 康马县| 西安市| 淮南市| 金川县| 大化| 藁城市| 西城区| 五台县| 丰台区| 专栏| 郓城县| 瑞金市| 大宁县| 云梦县| 盐城市| 永寿县| 衢州市| 和硕县| 天长市| 邵东县| 山阳县| 大邑县| 旬邑县| 灌阳县| 巴楚县| 云安县| 汉源县| 桃园县| 小金县| 云阳县| 平果县| 丹寨县| 育儿| 岢岚县|