- XML DOM - Accessing
- XML DOM - Navigation
- XML DOM - Traversing
- XML DOM - Loading
- XML DOM - Methods
- XML DOM - Node Tree
- XML DOM - Nodes
- XML DOM - Model
- XML DOM - Overview
- XML DOM - Home
XML DOM Operations
- XML DOM - Clone Node
- XML DOM - Remove Node
- XML DOM - Replace Node
- XML DOM - Add Node
- XML DOM - Create Node
- XML DOM - Set Node
- XML DOM - Get Node
XML DOM Objects
- DOM - DOMException Object
- DOM - XMLHttpRequest Object
- DOM - Comment Object
- DOM - CDATASection Object
- DOM - Attribute Object
- DOM - Element Object
- DOM - Notation Object
- DOM - EntityReference Object
- DOM - Entity Object
- DOM - ProcessingInstruction
- DOM - DocumentType Object
- DOM - DOMImplementation
- DOM - NamedNodeMap Object
- DOM - NodeList Object
- DOM - Node Object
XML DOM Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
XML DOM - Quick Guide
XML DOM - Overview
DOM的定义,由
:The Document Object Model (DOM) is an apppcation programming interface (API) for HTML and XML documents. It defines the logical structure of documents and the way a document is accessed and manipulated.
人力部界定了接触所有XML要素的物体、特性和方法(接口)。 它分为3个不同部分/层次:
XML DOM - XML文件的标准模式
XML DOM是XML的标准目标模型。 XML文件具有称为nodes的信息单位的等级; OM是描述这些节点及其之间关系的标准方案拟订接口。
由于XML DOM公司还提供了一份允许开发商在树上的任何时间添加、编辑、移动或删除 no子以便形成申请的意向书。
以下是OM结构的图表。 图表显示,各行各业通过每个节点进行渗透,将XML文件作为DOM结构进行评估。
Advantages of XML DOM
The following are thevant of XML DOM.
XML DOM是独立的语言和平台。
XML DOM is traversable - Information in XML DOM is organized in a行各业,使开发商能够围绕研究具体信息的等级进行联系。
XML DOM is modifiable - 具有活力,为开发商提供了一个在树上任何点添加、编辑、移动或删除 no子的空间。
Disadvantages of XML DOM
它消耗了更多的记忆(如果XML结构庞大的话),因为方案一经起草,就一直记忆犹新,直到明确删除。
由于广泛使用记忆,其业务速度比SAX慢。
XML DOM - Model
既然我们知道多民族行动意味着什么,那么,我们就会看到多民族运动的结构是什么。 DOM文件是nodes 。 或部分信息按等级排列。 某些类型的nodes 也许有child不同种类的节点,而其他节点则在文件结构中没有任何内容。 下表列出了他们作为儿童可能享有的节点类型:
Attr——文本,实体参考
ProcessingInstruction 无
CDATA Section 无
Entity - Element,processInstruction, comment, Text, CDATA Section, entities Reference
Example
考虑以下XML文件node.xml的OM代表性。
<?xml version = "1.0"?> <Company> <Employee category = "technical"> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> </Employee> <Employee category = "non-technical"> <FirstName>Taniya</FirstName> <LastName>Mishra</LastName> <ContactNo>1234667898</ContactNo> </Employee> </Company>
上文XML文件的目标模式如下:
从上述流程图来看,我们可以推断——
显然,Node可以有多个节点,称为child。 http://www.un.org/Depts/DGACM/index_french.htm 在上述例子中,我们有两个特性:Technical 和Non-tech。 attribute no子实际上不是 element子的孩子,而是仍然与.有关系。
这些孩子可以有多个孩子。 在节点内的案文称为text node。
同一层次的 no子被称为兄弟姐妹。
人力部确定——
代表接口和操纵文件的目的。
物体和界面之间的关系。
XML DOM - Nodes
在本章中,我们将研究XML DOM Nodes。 每个XMLDOM都包含在称为Nodes的等级单位中的信息,而DOM则描述了这些节点及其之间的关系。
Node Types
The following flowchart show all the node categories -
XML中最常见的节点是:
Attribute Node - Each identitye is considered an attribute node。 它包含有关要素节点的信息,但实际上并不被视为要素中的儿童。
某些不太常见的节点是:
CData Node 这一节点包含不应由教区分析的信息。 相反,它应当作为简单案文通过。
Comment Node 这一节点包括有关数据的信息,通常被申请所忽略。
XML DOM - Node Tree
在这一章中,我们将研究XML DOMNode 树木。 在一项XML文件中,信息按等级结构保存;这一等级结构称为Node/i>。 这种等级制度允许开发商在树木周围寻找具体信息,从而允许 no子进入。 然后可以更新这些节点的内容。
no树的结构从根元素开始,向儿童部分扩散到最低水平。
Example
下面的图表显示了一种简单的XML文件。
<?xml version = "1.0"?> <Company> <Employee category = "Technical"> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> </Employee> <Employee category = "Non-Technical"> <FirstName>Taniya</FirstName> <LastName>Mishra</LastName> <ContactNo>1234667898</ContactNo> </Employee> </Company>
在上述例子中可以看到,他们的领地代表(其国土部)如下所示:
树木顶端称为root。 root 斜线;Company> 后者含有两条 &子;Employee> 这些节点称为儿童节点。
The child node <Employee> of fundamental node <Company> inturd composed of its own child node(<FirstName> <LastName> <Contact No>).
两个儿童节点:Employee> 赋予技术和非技术价值,称为attribute nodes。
每个节日内的案文称为text node。
XML DOM - Methods
OM作为AAP包含不同类型的信息,可在XML文件中找到,例如内容和案文。 这些接口包括与这些物体合作所需的方法和特性。 财产界定了de的特性,而方法则允许操纵 no子。
下表列出了OMD的班级和接口——
S.No. | Interface & Description |
---|---|
1 | 它提供了一些独立于文件标本模式任何具体事例的操作方法。 |
2 | 它是“轻重”或“轻度”文件标的,它(作为文件顶级)将XML/超文本树植入一份完整的文件。 |
3 | |
4 | 它是XML的标志。 |
5 | 它是一份仅读的Node物体清单。 |
6 | 它是可以名字查阅的节点。 |
7 | 该网站载有在OMM获取特性数据的一系列属性和方法。 |
8 | Attribute 它是一种属性。 |
9 | 这是要素节点。 摘自Node。 |
10 | 它是案文节点。 特性Data的衍生物。 |
11 | 它代表了评论节点。 特性Data的衍生物。 |
12 | ProcessingInstruction 它是“处理指示”。 它是在XML中用来在文件案文中保存与程序有关的信息的一种方法。 |
13 | CDATA Section 它代表了美洲自由贸易区科。 案文摘录。 |
14 | 它是一个实体。 摘自Node。 |
15 | 这在树中是一个实体。 摘自Node。 |
We will be discussing methods and properties of each of the above Interfaces in their respective chapters.
XML DOM - Loading
在本章中,我们将研究XML /oding和Parsing。
为了描述APIC提供的接口,W3C使用一个称为“Interface Defin Language (IDL)”的抽象语言。 使用IDL的好处是,开发商学习如何使用DOM,使用其偏好的语言,并且可以很容易地改用另一种语言。
缺点是,由于这是抽象的,因此网络开发商不能直接使用IDL。 由于方案拟定语文之间的差异,它们需要在抽象接口与具体语文之间绘制地图,或使其具有约束力。 DOM被绘制成方案编制语言,如Javascript、Jend、Java、C、C++、PLSQL、Zahur和Perl。
In the following sections and chapters, we will be using Javascript as our programming language to load XML file.
Parser
A parser是软件应用,旨在分析文件,如XML文件,并与信息具体相关。 下表列出了一些基于DOM的教区:
S.No | Parser & Description |
---|---|
1 |
Sun Microsystem's Java AP for XML Parsing (JAXP) |
2 | XML4J IBM(XML4J) |
3 | msxml 微软的XML教区(msxml)版本2.0为因特网探测器。 |
4 | 4 DOM是S 方案拟订语言的一个教区 |
5 | XML:DOM XML:DOM是使用Perl操纵XML文件的一个Perl模块 |
6 | 25. Papa's Xerces Java Parser |
在像DOM这样的植树的APIC中, par子 trav子是XML文件,制造相应的DOM物体。 然后,你可以回击OM结构。
Loading and Parsing XML
在装上XML文件时,XML的内容可以有两种形式:
Directly as XML file
As XML string
Content as XML file
下面举例说明,在XML内容作为XML文件收到时,如何使用Ajax和Javascript(
responseXML 在XML DOM中直接改变XML的内容。
一旦将XML的内容转化为Javagust XML DOM,你就可以通过使用JSDOM方法和财产获取任何XML要素。 我们利用了诸如Nodes、nodeValue和诸如获得ElementsById(ID)、获得ElementsByTagName(tags_name)等多功能。
Execution
Save this file asloadingexample.html and open it in their browser. 您将获得以下产出:
Content as XML string
下面的例子表明,如果将XML的内容作为XML文件接收,如何用Ajax和Javascript装载XML数据。 这里,Ajax功能在XML DOM中获取Xml文档的内容并储存。 一旦制造了DOM物体,就进行平价。
<!DOCTYPE html> <html> <head> <script> // loads the xml string in a dom object function loadXMLString(t) { // for non IE browsers if (window.DOMParser) { // create an instance for xml dom object parser = new DOMParser(); xmlDoc = parser.parseFromString(t,"text/xml"); } // code for IE else { // create an instance for xml dom object xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.loadXML(t); } return xmlDoc; } </script> </head> <body> <script> // a variable with the string var text = "<Employee>"; text = text+"<FirstName>Tanmay</FirstName>"; text = text+"<LastName>Patil</LastName>"; text = text+"<ContactNo>1234567890</ContactNo>"; text = text+"<Email>tanmaypatil@xyz.com</Email>"; text = text+"</Employee>"; // calls the loadXMLString() with "text" function and store the xml dom in a variable var xmlDoc = loadXMLString(text); //parsing the DOM object y = xmlDoc.documentElement.childNodes; for (i = 0;i<y.length;i++) { document.write(y[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>
守则的大部分细节载于文字法。
互联网探索者使用ActiveXObject(“Microsoft.XMLDOM”)将XML数据输入OM物体,其他浏览器则使用DOMParser(功能和parseFromString(text, text/xml )方法。
变量text应包含有XML内容的说明。
一旦将XML的内容转化为Javagust XML DOM,你就可以通过使用JS DOM方法和财产获取任何XML要素。 我们利用了DOM特性,例如Nodes,nodeValue。
Execution
Save this file asloadingexample.html and open it in their browser. 你将看到以下产出:
既然我们看到XML的内容如何转化为Javagust XML DOM,那么你现在可以通过使用XML DOM方法获取任何XML要素。
XML DOM - Traversing
在这一章中,我们将讨论XML DOM Traversing。 我们在
Example
以下例子(traverse_example.htm)显示了OM的渗透。 在这里,我们通过每个孩子的 no子;Employee> 元素。
<!DOCTYPE html> <html> <style> table,th,td { border:1px sopd black; border-collapse:collapse } </style> <body> <span id = "ajax_xml"></span> <script> //if browser supports XMLHttpRequest if (window.XMLHttpRequest) {// Create an instance of XMLHttpRequest object. code for IE7+, Firefox, Chrome, Opera, Safari var xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // sets and sends the request for calpng "node.xml" xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); // sets and returns the content as XML DOM var xml_dom = xmlhttp.responseXML; // this variable stores the code of the html table var html_tab = <table id = "id_tabel" apgn = "center"> <tr> <th>Employee Category</th> <th>FirstName</th> <th>LastName</th> <th>ContactNo</th> <th>Email</th> </tr> ; var arr_employees = xml_dom.getElementsByTagName("Employee"); // traverses the "arr_employees" array for(var i = 0; i<arr_employees.length; i++) { var employee_cat = arr_employees[i].getAttribute( category ); // gets the value of category element of current "Element" tag // gets the value of first child-node of FirstName // element of current "Employee" tag var employee_firstName = arr_employees[i].getElementsByTagName( FirstName )[0].childNodes[0].nodeValue; // gets the value of first child-node of LastName // element of current "Employee" tag var employee_lastName = arr_employees[i].getElementsByTagName( LastName )[0].childNodes[0].nodeValue; // gets the value of first child-node of ContactNo // element of current "Employee" tag var employee_contactno = arr_employees[i].getElementsByTagName( ContactNo )[0].childNodes[0].nodeValue; // gets the value of first child-node of Email // element of current "Employee" tag var employee_email = arr_employees[i].getElementsByTagName( Email )[0].childNodes[0].nodeValue; // adds the values in the html table html_tab += <tr> <td> + employee_cat+ </td> <td> + employee_firstName+ </td> <td> + employee_lastName+ </td> <td> + employee_contactno+ </td> <td> + employee_email+ </td> </tr> ; } html_tab += </table> ; // adds the html table in a html tag, with id = "ajax_xml" document.getElementById( ajax_xml ).innerHTML = html_tab; </script> </body> </html>
该代码载
。XML的内容被转化成 Java文ML。
使用该方法的多种要素(主轴)获得。
其次,我们穿透这一阵列,在一张桌上显示儿童 no的价值。
Execution
除此文件外,服务器路上traverse_example.html(该文档和Node.xml在服务器上应走同样的道路)。 您将获得以下产出:
XML DOM - Navigation
直到现在,我们才研究了OM结构,如何装载和穿过XML DOM物体,并通过OM系统物体反向。 这里,我们将看看我们如何能够在电离层物体的分点之间航行。 XML DOM由帮助我们通过 no子航行的节点的各种特性组成,例如:
parentNode
childNodes
firstChild
lastChild
nextSibpng
previousSibpng
下面是显示其与其他节点之间关系的 no树图。
DOM - Parent Node
该财产将母子的 no子定为 object子。
Example
The following example (navigate_example.htm) parses an XML document (
) into an XML DOM Object. 然后,DOM的物体通过孩子的 no子与母子接触——<!DOCTYPE html> <html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; var y = xmlDoc.getElementsByTagName("Employee")[0]; document.write(y.parentNode.nodeName); </script> </body> </html>
如你在上述例子中可以看到的,孩子们的 no子(Employee,在母子的 no子上。
Execution
Save this file as navigate_example.html on the services path (this file and
应当在服务器上走同样的道路。 在产出中,我们获得了Employee,即Company。First Child
该财产为Node,是NodeList的第一个子女名称。
Example
The following example (first_node_example.htm) parses an XML document (
) into an XML DOM Object, 然后是同在OM物体中的第一个儿童节点做对。<!DOCTYPE html> <html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; function get_firstChild(p) { a = p.firstChild; while (a.nodeType != 1) { a = a.nextSibpng; } return a; } var firstchild = get_firstChild(xmlDoc.getElementsByTagName("Employee")[0]); document.write(firstchild.nodeName); </script> </body> </html>
功能get_firstChild(p)被用于避免 empty的节点。 它有助于将第一个儿童部分从 no名单中删除。
x=_firstChild (xmlDoc.getElementsByTagName ("Employee”)[0] fetches the first child node for the tag name Employee。
Execution
Save this file as first_node_example.htm on the services path (this file and
应当在服务器上走同样的道路。 在产出中,我们获得了第1个儿童节点:Employee,即FirstName。Last Child
该财产为Node,是NodeList的最后一个子女名称。
Example
The following example (last_node_example.htm) parses an XML document (
) into an XML DOM Object, 然后是接触到在xml DOM物体上存在的最后一名儿童节点。<!DOCTYPE html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; function get_lastChild(p) { a = p.lastChild; while (a.nodeType != 1){ a = a.previousSibpng; } return a; } var lastchild = get_lastChild(xmlDoc.getElementsByTagName("Employee")[0]); document.write(lastchild.nodeName); </script> </body> </html>
Execution
Save this file as last_node_example.htm on the server path (this file and node.xml should be on same path in You server). 在产出中,我们获得了Employee,, i.e, Email。
Next Sibpng
该财产为Node,是下一个孩子,即NodeList的下一个特定儿童元素的兄弟姐妹。
Example
以下例子(nextSibpng_example.htm)将XML文件(
)归入XML DOM物体,在Xml文件所列下一个航标上方。<!DOCTYPE html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; function get_nextSibpng(p) { a = p.nextSibpng; while (a.nodeType != 1) { a = a.nextSibpng; } return a; } var nextsibpng = get_nextSibpng(xmlDoc.getElementsByTagName("FirstName")[0]); document.write(nextsibpng.nodeName); </script> </body> </html>
Execution
将这一档案作为服务器线路上的nextSibpng_example.htm(该文档和Node.xml在服务器上应当走同样的道路)。 在产出中,我们获得下一个百分点:FirstName,,即LastName。
Previous Sibpng
该财产为Node,是前一名儿童,即以前在NodeList的指定儿童单位的兄弟姐妹。
Example
The following example (previoussibpng_example.htm) parses an XML document (
) into an XML DOM Object, when navigates the pre node of the final child node present in the xml document.<!DOCTYPE html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; function get_previousSibpng(p) { a = p.previousSibpng; while (a.nodeType != 1) { a = a.previousSibpng; } return a; } prevsibpng = get_previousSibpng(xmlDoc.getElementsByTagName("Email")[0]); document.write(prevsibpng.nodeName); </script> </body> </html>
Execution
Save this file as previoussibpng_example.htm on the services path (this file and
应当在服务器上走同样的道路。 在产出中,我们获得了先前的Email, i.e,Contact No。XML DOM - Accessing
在本章中,我们将研究如何进入作为《禁止杀伤人员地雷公约》文件信息单位的XML DOM节点。 XML DOM的代号结构允许开发商在树木周围收集具体信息,同时获取信息。
Accessing Nodes
下面是你可以接触节点的三种方式:
采用getElementsByTagName ()方法
通过树苗的 lo或 trav树
通过利用 no子关系挖掘 no树
getElementsByTagName ()
这种方法通过明确姓名,可以查阅通知。 它还允许查阅Node List和Node List Length的资料。
Syntax
甲型六氯环己烷法有以下合成物:
node.getElementByTagName("tagname");
如果有,
Example
下面是说明使用方法的简单方案。
<!DOCTYPE html> <html> <body> <span> <b>FirstName:</b> <span id = "FirstName"></span><br> <b>LastName:</b> <span id = "LastName"></span><br> <b>Category:</b> <span id = "Employee"></span><br> </span> <script> if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; document.getElementById("FirstName").innerHTML = xmlDoc.getElementsByTagName("FirstName")[0].childNodes[0].nodeValue; document.getElementById("LastName").innerHTML = xmlDoc.getElementsByTagName("LastName")[0].childNodes[0].nodeValue; document.getElementById("Employee").innerHTML = xmlDoc.getElementsByTagName("Employee")[0].attributes[0].nodeValue; </script> </body> </html>
In the above example, we are accessing the information of the nodes FirstName, LastName and Employee.
xmlDoc.getElementsByTagName (“FirstName”) [0].childNodes[0]. 价值: 这条线使用“获得”方法获取儿童节点的价值。
xmlDoc.getElementsByTagName(“Employee”)[0].attributes [0].node 价值: 这条线可使用以下方法的属性价值:Employee 获取ElementByTagName()方法。
Traversing Through Nodes
本章涉及:
with example.Navigating Through Nodes
本章涉及:
,有实例。XML DOM - Get Node
在本章中,我们将研究如何获得XMLDOM物体的node值。 XML文件拥有称为节点的信息单位的等级。 诺德物体有财产nodeValue,该财产符合元素的价值。
在以下各节中,我们将讨论——
要素的去掉价值
2. 结 义
node.xml 以下所有例子都使用:
<Company> <Employee category = "Technical"> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> <Email>tanmaypatil@xyz.com</Email> </Employee> <Employee category = "Non-Technical"> <FirstName>Taniya</FirstName> <LastName>Mishra</LastName> <ContactNo>1234667898</ContactNo> <Email>taniyamishra@xyz.com</Email> </Employee> <Employee category = "Management"> <FirstName>Tanisha</FirstName> <LastName>Sharma</LastName> <ContactNo>1234562350</ContactNo> <Email>tanishasharma@xyz.com</Email> </Employee> </Company>
Get Node Value
这种方法在文件上用特定标签填写的 Elements。
Example
The following example (getnode_example.htm) parses an XML document (
) into an XML DOM Object and Extras the node Value of the child node First (0)——<!DOCTYPE html> <html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; x = xmlDoc.getElementsByTagName( FirstName )[0] y = x.childNodes[0]; document.write(y.nodeValue); </script> </body> </html>
Execution
将这一档案作为服务器线路上的getnode_example.htm(该文档和de.xml在服务器上应当走同样的道路)。 在产出中,我们获得了以下数值:Tanmay。
Get Attribute Value
捐资是XML节点的一部分。 噪音元素具有多种独特的特性。 酸盐提供了更多关于XML噪音元素的信息。 更确切地说,它们界定了 no子的特性。 “XML属性”始终是名值的配对。 该特性的这种价值称为attribute node。
getAttribute()方法按元件名称检索了属性价值。
Example
The following example (get_attribute_example.htm) parses an XML document (
) into an XML DOM Object and Extras the Depende Value of the category Employee (index at 2) -<!DOCTYPE html> <html> <body> <script> if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; x = xmlDoc.getElementsByTagName( Employee )[2]; document.write(x.getAttribute( category )); </script> </body> </html>
Execution
将这一档案作为服务器线路上的get_attribute_example.htm(该文档和Node.xml在服务器上应当走同样的道路)。 在产出中,我们获得的属性价值为Management。
XML DOM - Set Node
在本章中,我们将研究如何改变锡马解放组织DOM物体中的节点价值。 名义价值可改变如下:
var value = node.nodeValue;
如果node 是Attribute,则 Value/i>变量将是特性值;node 是Text。 定本为案文内容;如果node为 Element,则为null。
下面各节将显示每个节点(标题、案文节点和元件)的定值。
node.xml 以下所有例子都使用:
<Company> <Employee category = "Technical"> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> <Email>tanmaypatil@xyz.com</Email> </Employee> <Employee category = "Non-Technical"> <FirstName>Taniya</FirstName> <LastName>Mishra</LastName> <ContactNo>1234667898</ContactNo> <Email>taniyamishra@xyz.com</Email> </Employee> <Employee category = "Management"> <FirstName>Tanisha</FirstName> <LastName>Sharma</LastName> <ContactNo>1234562350</ContactNo> <Email>tanishasharma@xyz.com</Email> </Employee> </Company>
Change Value of Text Node
当我们说诺德要素的改变价值时,我们就意味着要篡改要素的内容(也称作text node)。 下面举例说明如何改变一个要素的案文节点。
Example
以下例子(第_text_node_example.htm)将XML文件(
)细分为XMLDOM物体,并更改元素案文的数值。 在这种情况下, Email of each Employe to support@xyz.com,并印刷这些数值。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName("Email"); for(i = 0;i<x.length;i++) { x[i].childNodes[0].nodeValue = "support@xyz.com"; document.write(i+ ); document.write(x[i].childNodes[0].nodeValue); document.write( <br> ); } </script> </body> </html>
Execution
Save this file as set_text_node_example.htm on the services path (this file and
(“标签”)——是拟创建的新元件名称。
Example
以下例子(createnewelement_example.htm)将XML文件(
)归入XMLDOM物体,并在XML文件中设置了一个新内容:PhoneNo/i>。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); new_element = xmlDoc.createElement("PhoneNo"); x = xmlDoc.getElementsByTagName("FirstName")[0]; x.appendChild(new_element); document.write(x.getElementsByTagName("PhoneNo")[0].nodeName); </script> </body> </html>
new_element = xmlDoc.createElement(“PhoneNo”); • 创建新元件;
x.appendChild(new_element);x 持有指定儿童分母的名字;FirstName>该新元子附后。
Execution
Save this file as createnewelement_example.htm on the services path (this file and
Create new Text node
方法createTextNode() 产生新的案文节点。
Syntax
参考文件createTextNode() 如下:
var_name = xmldoc.createTextNode("tagname");
如果有,
<->var_name——这是用户界定的可变名称,名称为新的文本编号。
(“标签”) - 括号中是新案文的名号。
Example
以下例子(createtextnode_example.htm)将XML文件(
)细分为XMLDOM物体,并在XML文件中形成新的文本编号。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); create_e = xmlDoc.createElement("PhoneNo"); create_t = xmlDoc.createTextNode("Im new text node"); create_e.appendChild(create_t); x = xmlDoc.getElementsByTagName("Employee")[0]; x.appendChild(create_e); document.write(" PhoneNO: "); document.write(x.getElementsByTagName("PhoneNo")[0].childNodes[0].nodeValue); </script> </body> </html>
上述法典的细节如下:
create_e = xmlDoc.createElement(“PhoneNo”); 产生新的内容和内容;PhoneNo>
create_t = xmlDoc.createTextNode(“Im new text node”);创设了一个新案文Node“Im new text node”。
x.appendChild(create_e); The text node, Im new text node" is supplemented to the content, <PhoneNo>
document.write(x.getElementsByTagName(“PhoneNo”)[0].childNodes[0].nodeValue); 撰写新文本对内容和内容的无价值;
Execution
除此文件外,在服务器路上将这一文件作为createtextnode_example.htm>(该文档和Node.xml在服务器上应走同样的道路)。 在产出中,我们获得归属价值,即Phone诺:Im new text node。
Create new Comment node
createComment(>) 方法产生了新的评论节点。 评注节点被列入易于理解守则功能的方案。
Syntax
参考文件createComment() 如下:
var_name = xmldoc.createComment("tagname");
如果有,
(“标签”)——是将要创建的新评论节点的名称。
Example
以下例子(createcommentnode_example.htm)将XML文件(
)归入XMLDOM物体,并形成新的评论节点,Company是XML文件中的“。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); create_comment = xmlDoc.createComment("Company is the parent node"); x = xmlDoc.getElementsByTagName("Company")[0]; x.appendChild(create_comment); document.write(x.lastChild.nodeValue); </script> </body> </html>
在上述例子中:
create_comment = xmlDoc.createComment(“Company is the parent node”)creates a specified comment pne。
x.appendChild (create_comment) 在这一行中,× 持有该元素和混合物的名称;Company>该评注线附后。
Execution
Save this file as createcommentnode_example.htm on the services path (this file and the
应当在服务器上走同样的道路。 在产出中,我们获得的属性价值是Company是母子之子。Create New CDATA Section Node
方法createCDATA Section() 创建新的《美洲贸易协定》节点。 如果新设立的《空运公约》条款在内容标语中不存在,则由新内容取代。
Syntax
参考文件createCDATA Section() 如下:
var_name = xmldoc.createCDATASection("tagname");
如果有,
(“标签”)——是拟创建的《自由贸易协定》新条款的名称。
Example
以下例子(createcdatanode_example.htm)将XML文件(
)归入XML DOM物体,并在XML文件中设立了一个新的CDATA节节,“Create CDATA Example”。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); create_CDATA = xmlDoc.createCDATASection("Create CDATA Example"); x = xmlDoc.getElementsByTagName("Employee")[0]; x.appendChild(create_CDATA); document.write(x.lastChild.nodeValue); </script> </body> </html>
在上述例子中:
create_CDATA = xmlDoc.createCDATA Section(“Create CDATA Example”)创建了一个新的CDATA节节节节节节节点,
x.appendChild (create_CDATA) here,x > 带有特定元素和带;Employee>indexed at 0 to which the CDATA node Value is supplemented.
Execution
将这一档案作为createcdatanode_example.htm存放在服务器上(该文档和Node.xml应在服务器上走同样的道路)。 在产出中,我们获得了“Create CDATA Example的属性价值。
Create new Attribute node
为了创造新的属性节点,采用了setAttributeNode()。 如果该要素标的中存在新产生的属性缺失,则代之以新的特性。
Syntax
使用createElement() 方法如下:
var_name = xmldoc.createAttribute("tagname");
如果有,
(“标签”)——是新名词的名称。
Example
以下例子(createattributenode_example.htm)将XML文件(
)归入XMLDOM物体,并在XML文件中创建了一个新的属性编号。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); create_a = xmlDoc.createAttribute("section"); create_a.nodeValue = "A"; x = xmlDoc.getElementsByTagName("Employee"); x[0].setAttributeNode(create_a); document.write("New Attribute: "); document.write(x[0].getAttribute("section")); </script> </body> </html>
在上述例子中:
create_a=xmlDoc.createAttribute(“Category”)在名称和带上建立了归属;section>
create_a.node 数值=“管理” a. 为属性与设计、科及特设定数值A>;
x[0].setAttributeNode(create_a),这一属性价值被定在代号元件中;Employee>指数为0。
XML DOM - Add Node
本章将讨论现有要素的要点。 它提供了以下手段:
在现有儿童节点之前或之后添加新的儿童节点
在案文中插入数据
添加属性
采用以下方法,在OMS的一个要素中添加/应用节点:
appendChild()
insertBefore()
insertData()
appendChild()
该方法在现行儿童节日之后增加了新的儿童节日。
Syntax
补充儿童法的协同效应如下:
Node appendChild(Node newChild) throws DOMException
如果有,
添加了Node。
Example
The following example (appendchildnode_example.htm) parses an XML document (
) into an XML DOM Object and appends new child PhoneNo to the content &;FirstName><!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); create_e = xmlDoc.createElement("PhoneNo"); x = xmlDoc.getElementsByTagName("FirstName")[0]; x.appendChild(create_e); document.write(x.getElementsByTagName("PhoneNo")[0].nodeName); </script> </body> </html>
在上述例子中:
采用这一方法产生了一个新的要素PhoneNo。
新内容PhoneNo 添加到内容FirstName上,使用相应的方法。
Execution
除此文件外,在服务器路上(该文档和代号应在服务器上走同样的道路)。 在产出中,我们获得的属性价值为PhoneNo。
insertBefore()
方法insertBefore(),在指定儿童节日前插入新的儿童节点。
Syntax
添加“(......)”的方法如下:
Node insertBefore(Node newChild, Node refChild) throws DOMException
如果有,
refChild 是否必须插入新点之前的标志。
这种方法将插入Node。
Example
The following example (insertnode before_example.htm) parses an XML document (
) into an XML DOM Object and includes new child Email before the specified content <Email><!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); create_e = xmlDoc.createElement("Email"); x = xmlDoc.documentElement; y = xmlDoc.getElementsByTagName("Email"); document.write("No of Email elements before inserting was: " + y.length); document.write("<br>"); x.insertBefore(create_e,y[3]); y=xmlDoc.getElementsByTagName("Email"); document.write("No of Email elements after inserting is: " + y.length); </script> </body> </html>
在上述例子中:
采用这一方法产生了一个新的要素: Email。
新内容 Email 在要素Email之前添加,使用“Before()”这一方法。
y.length 说明新要素之前和之后增加的内容总数。
Execution
将这一档案作为服务器线路上的insertnode before_example.htm(该文档和Node.xml在服务器上应当走同样的道路)。 我们将获得以下产出:
No of Email elements before inserting was: 3 No of Email elements after inserting is: 4
insertData()
该方法在规定的16个轨道单位中加插图。
Syntax
插入“Data”(Data)有以下各条:
void insertData(int offset, java.lang.String arg) throws DOMException
如果有,
Example
以下实例(内容:example.htm)将XML文件(
))归入XMLDOM物体,并在特定位置插入新的数据MiddleName;FirstName><!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName("FirstName")[0].childNodes[0]; document.write(x.nodeValue); x.insertData(6,"MiddleName"); document.write("<br>"); document.write(x.nodeValue); </script> </body> </html>
x.insertData(6,“MiddleName”);->,x 持有特定儿童名称,即:和;Name> 然后在案文中插入数据“MiddleName”。 从职位开始 6. 结 论
Execution
将这一档案作为addtext_example.htm放在服务器上(该文档和Node.xml应当在服务器上走同样的道路)。 我们的产出如下:
Tanmay TanmayMiddleName
XML DOM - Replace Node
在这一章中,我们将研究在XMLDOM物体中替代噪音操作的情况。 我们知道,OMM的所有东西都由一个称为“ no子”的等级信息单位维持,而代号为更新这些特定节点或案文节点提供了另一种途径。
以下两种方法取代节点。
replaceChild()
replaceData()
replaceChild()
“replaceChild()” 方法用新的代号取代特定的代号。
Syntax
插入“Data”(Data)有以下各条:
Node replaceChild(Node newChild, Node oldChild) throws DOMException
如果有,
oldChild - 在名单上删除。
这种方法可回收代号。
Example
The following example (replacenode_example.htm) parses an XML document (
<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.documentElement; z = xmlDoc.getElementsByTagName("FirstName"); document.write("<b>Content of FirstName element before replace operation</b><br>"); for (i=0;i<z.length;i++) { document.write(z[i].childNodes[0].nodeValue); document.write("<br>"); } //create a Employee element, FirstName element and a text node newNode = xmlDoc.createElement("Employee"); newTitle = xmlDoc.createElement("Name"); newText = xmlDoc.createTextNode("MS Dhoni"); //add the text node to the title node, newTitle.appendChild(newText); //add the title node to the book node newNode.appendChild(newTitle); y = xmlDoc.getElementsByTagName("Employee")[0] //replace the first book node with the new node x.replaceChild(newNode,y); z = xmlDoc.getElementsByTagName("FirstName"); document.write("<b>Content of FirstName element after replace operation</b><br>"); for (i = 0;i<z.length;i++) { document.write(z[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>
Execution
将这一档案作为服务器路上的替代物,(该文档和代号应当放在服务器上。) 我们将获得以下产出:
Content of FirstName element before replace operation Tanmay Taniya Tanisha Content of FirstName element after replace operation Taniya Tanisha
replaceData()
替换数字的方法取代从特定16个轨道单位开始的特性,但用具体指示加以抵消。
Syntax
替代数字如下:
void replaceData(int offset, int count, java.lang.String arg) throws DOMException
不适用
arg——DOMString,必须替换范围。
Example
以下例子(replacedata_example.htm)将XML文件(
)归入XML DOM物体并替换。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName("ContactNo")[0].childNodes[0]; document.write("<b>ContactNo before replace operation:</b> "+x.nodeValue); x.replaceData(1,5,"9999999"); document.write("<br>"); document.write("<b>ContactNo after replace operation:</b> "+x.nodeValue); </script> </body> </html>
在上述例子中:
x.replaceData(2,3,”999”;-以下>:x > 随附具体内容和内容的案文;Contact No>其案文由新文本999999999999"取代,从1> > > 至5>>>>。
Execution
将这一档案作为服务器线路上的replacedata_example.htm(该文档和de.xml在服务器上应当走同样的道路)。 我们将获得以下产出:
ContactNo before replace operation: 1234567890 ContactNo after replace operation: 199999997890
XML DOM - Remove Node
在这一章中,我们将研究XML DOM Remove Node的运行情况。 拆卸的废.从文件中删除了规定的废.。 这项行动可以实施,以删除案文节点、内容节点或属性节点。
下面是用于消除噪音操作的方法:
删除
移除
删除
The method 删除 removes the child node indicated by oldChild from the pst of children, and returns it. Removing a child node is equivalent to removing a text node. Hence, removing a child node removes the text node associated with it.
Syntax
The syntax to use 删除 is as follows −
Node removeChild(Node oldChild) throws DOMException
如果有,
oldChild - 正在拆除。
这种方法使废墟得以恢复。
Example - Remove Current Node
以下例子(removetantnode_example.htm)将XML文件(
)细分为XMLDOM物体,并删除了规定的 no子和带;Contact No> 摘自母子。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); document.write("<b>Before remove operation, total ContactNo elements: </b>"); document.write(xmlDoc.getElementsByTagName("ContactNo").length); document.write("<br>"); x = xmlDoc.getElementsByTagName("ContactNo")[0]; x.parentNode.removeChild(x); document.write("<b>After remove operation, total ContactNo elements: </b>"); document.write(xmlDoc.getElementsByTagName("ContactNo").length); </script> </body> </html>
在上述例子中:
x = xmlDoc.getElementsByTagName(“Contact no”)[0] 获取该元素;ContactNo>指数为0。
x. 父母Node.removeChild(x); 删除元素和带;Contact No> 指数为0。
Execution
将这一档案作为removetantnode_example.htm在服务器上(该文档和代号应在服务器上走同样的道路)。 我们取得了以下成果:
Before remove operation, total ContactNo elements: 3 After remove operation, total ContactNo elements: 2
Example - Remove Text Node
The following example (removetextNode_example.htm) parses an XML document (
) into an XML DOM Object andmovs the specified child node <FirstName><!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName("FirstName")[0]; document.write("<b>Text node of child node before removal is:</b> "); document.write(x.childNodes.length); document.write("<br>"); y = x.childNodes[0]; x.removeChild(y); document.write("<b>Text node of child node after removal is:</b> "); document.write(x.childNodes.length); </script> </body> </html>
在上述例子中:
x = xmlDoc.getElementsByTagName(“FirstName”)[0]; - 获得第一个元素和提炼;FirstName>到x,指数为0。
y = x.childNodes[0]; - 本行y 孩子们要走。
x.removeChild(y); - 消除特定儿童疾病。
Execution
将这一档案作为去除:
Text node of child node before removal is: 1 Text node of child node after removal is: 0
移除
The method 移除 removes an attribute of an element by name.
Syntax
Syntax to use 移除 is as follows −
void removeAttribute(java.lang.String name) throws DOMException
如果有,
<0>> - 删除的属性名称。
Example
以下例子(removeelementattribute_example.htm)将XML文件(
)归入XMLDOM物体,并删除了具体特性。<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName( Employee ); document.write(x[1].getAttribute( category )); document.write("<br>"); x[1].removeAttribute( category ); document.write(x[1].getAttribute( category )); </script> </body> </html>
在上述例子中:
document.write (x***.getAttribute ( category ); - Value of Depende 援引指数为1级职位。
x3.1.removeAttribute(类别 );——消除属性价值。
Execution
将这一档案作为removeelementattribute_example.htm在服务器上(该文档和Node.xml在服务器上应走同样的道路)。 我们取得了以下成果:
Non-Technical null
XML DOM - Clone Node
在本章中,我们将在XML DOM物体上放弃Clone Node的运行。 衣帽子操作被用来制作特定噪音的复制件。
cloneNode()
这种方法回收了这一节点的重复,即作为节点的通用复印件。 重复点子没有母子(母子网无效),也没有用户数据。
Syntax
The cloneNode( methods has the following syntax -
Node cloneNode(boolean deep)
这种方法回收了重复点。
Example
The following example (clonenode_example.htm) parses an XML document (
) into an XML DOM Object and makes a deep拷贝 of the first Employee i> i.<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName( Employee )[0]; clone_node = x.cloneNode(true); xmlDoc.documentElement.appendChild(clone_node); firstname = xmlDoc.getElementsByTagName("FirstName"); lastname = xmlDoc.getElementsByTagName("LastName"); contact = xmlDoc.getElementsByTagName("ContactNo"); email = xmlDoc.getElementsByTagName("Email"); for (i = 0;i < firstname.length;i++) { document.write(firstname[i].childNodes[0].nodeValue+ +lastname[i].childNodes[0].nodeValue+ , +contact[i].childNodes[0].nodeValue+ , +email[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>
如你在上述例子中可以看到,我们制定了cloneNode( param to true。 因此,在Employe的元素下,每个儿童部分均被复制或掩饰。
Execution
将这一档案作为服务器线路上的clonenode_example.htm(该文档和de.xml在服务器上应当走同样的道路)。 我们将获得以下产出:
Tanmay Patil, 1234567890, tanmaypatil@xyz.com Taniya Mishra, 1234667898, taniyamishra@xyz.com Tanisha Sharma, 1234562350, tanishasharma@xyz.com Tanmay Patil, 1234567890, tanmaypatil@xyz.com
您将注意到第一个Employee元素被完全掩饰。
DOM - Node Object
<0>Node接口是整个文件目标模型的主要数据类型。 no子用来代表整个文件树中的单一XML元素。
噪音可以是属性噪音、案文节点或任何其他节点。 属性nodeName, nodeValue和attributes被列为在不向特定衍生接口投放的情况下获取信息的机制。
Attributes
下表列出了Node物体的属性:
Attribute | Type | Description |
---|---|---|
attributes | NamedNodeMap | This is of type NamedNodeMap containing the attributes of this node (if it is an Element) or null otherwise. This has been removed. Refer |
DOMString | It is used to specify absolute base URI of the node. | |
NodeList | It is a NodeList that contains all children of this node. If there are no children, this is a NodeList containing no nodes. | |
Node | It specifies the first child of a node. | |
Node | It specifies the last child of a node. | |
DOMString | It is used to specify the name of the local part of a node. This has been removed. Refer | .|
namespaceURI | DOMString | It specifies the namespace URI of a node. This has been removed. Refer |
Node | It returns the node immediately following this node. If there is no such node, this returns null. | |
DOMString | The name of this node, depending on its type. | |
unsigned short | It is a code representing the type of the underlying object. | |
DOMString | It is used to specify the value of a node depending on their types. | |
Document | It specifies the Document object associated with the node. | |
Node | This property specifies the parent node of a node. | |
prefix | DOMString | This property returns the namespace prefix of a node. This has been removed. Refer |
Node | This specifies the node immediately preceding the current node. | |
DOMString | This specifies the textual content of a node. |
Node Types
我们列出了以下类别:
ELEMENT_NODE
ATTRIBUTE_NODE
ENTITY_NODE
ENTITY_REFERENCE_NODE
DOCUMENT_FRAGMENT_NODE
TEXT_NODE
CDATA_SECTION_NODE
COMMENT_NODE
PROCESSING_INSTRUCTION_NODE
DOCUMENT_NODE
DOCUMENT_TYPE_NODE
NOTATION_NODE
Methods
下表列出了不同的“目标”方法:
S.No. | Method & Description |
---|---|
1 | 这种方法在具体要素节点的最后一名儿童节点之后添加了一个节点。 它退回了另外的节点。 |
2 | 这种方法被用于制造一种重复的 no子,在衍生物类别中压倒一切。 它回收了重复的 no。 |
3 | 采用这一方法,根据文件指令,将目前的节点与特定节点相比较。 页: 1 |
4 | getFeature (DOMString norm, DOMString edition) <>> DOM 如有特定特征和版本的专用文稿,则不予反对,或予以废止。 删除。 Refer 。 |
5 | getUserData(DOMString key) >Retrieves the Object associated to a key on this node. 目的首先必须放在这个节点上,用同样的钥匙来命名。 归还与这一节点的指定钥匙相关的DOMUserData,如果无的话,则不予归还。 删除。 Refer 。 |
6 | hasAttributes() 这一节点(如果是一个要素)是否具有任何属性。 返回true,条件是:任何属性均出现在规定的休息日。 删除。 Refer 。 |
7 | 返回这个节点是否有任何孩子。 这种方法的回报true。 如果目前的节点有孩子,则false。 |
8 | 这种方法用于在目前这个节日子的孩子面前直接插入一个新的节点。 它返回了正在插入的节点。 |
9 | 这种方法接受一个名称空间,即URI,作为论据,并回报一个Boolean,其价值为true。 如果名称空间是特定噪音或false上的缺省名称空间。 如果不是的话。 |
10 | 这种方法检验两个节点是否平等。 返回true,如果是平等的,fal。 |
11 | isSameNode(Node other)> <>>>。 如果有的话,请注明日期:true。 删除。 Refer 。 |
12 | Supported(DOMStringites, DOMString edition) <>>。 这种方法可以回过来,确定的具体的OM模块是否得到目前的代号的支持。 页: 1 如果这一节点支持特定特征,则false。 这一点已被删除。 Refer 。 |
13 | 这种方法使URI获得与名称空间预设相关的名称空间。 |
14 | 这种方法回收了当前名称空间“URI”定义的最接近的预设装置。 如果发现有相关名称空间,则会事先确定或取消。 |
15 | 规范化增加了所有案文节点,包括确定一个正常形式的属性节点,其中含有要素、评论、处理指示、CDATA各节和实体参考资料,分别列出案文节点,即,案文节点和空文节点。 |
16 | 这种方法用于将特定儿童节点从目前的节点移走。 这又使废墟返回。 |
17 | 这种方法被用来用新的 no子取代老幼。 取而代之。 |
18 | <setUserData(DOMString key, DOMUserData data,userDataHandlerhandler)<>p>>>>。 之后,可以通过打电话getUserData,用同样的钥匙检索物体。 此前与这一节点的指定钥匙有关。 删除。 Refer 。 |
DOM - NodeList Object
NodeList的物体具体指明了命令收集的节点。 NodeList的物品可从零开始通过综合指数获得。
Attributes
下表列出了新列物体的属性:
Attribute | Type | Description |
---|---|---|
unsigned long | It gives the number of nodes in the node pst. |
Methods
下面是NodeList物体的唯一方法。
S.No. | Method & Description |
---|---|
1 |
收件中indexth>。 如果指数大于或等于名单中的点数,则该数值无效。 |
DOM - NamedNodeMap Object
<0>NamedNodeMap 物体用来代表按姓名检索的节点。
Attributes
下表列出了NamedNodeMap物体的财产。
Attribute | Type | Description |
---|---|---|
unsigned long | It gives the number of nodes in this map. The range of vapd child node indices is 0 to length-1 inclusive. |
Methods
下表列出了NamedNodeMap物体的方法。
S.No. | Methods & Description |
---|---|
1 | 保留姓名上注明的节点。 |
2 | Retrieves a node specified by local name and namespace URI. |
3 | 页: 1 如果指数大于或等于本地图的点数,则该数值无效。 |
4 | 删除姓名上指明的 no。 |
5 | 摘除当地名称和名称空间URI规定的遗嘱。 |
6 | Adds a node using its nodeNamevide. 如果在地图上已经出现与这一名称的对照,则由新名称取代。 |
7 | Adds a node using its namespaceURI and localName。 如果与这个名称空间URI有点联系,而且该地图中已经有当地名称,则由新名称取代。 重开 no本身没有效果。 |
DOM - DOMImplementation Object
Methods
下表列出了DOM Implementation 反对——的方法
S.No. | Method & Description |
---|---|
1 | 它以文件内容为具体类型的DOM文件标。 |
2 | 它制造了一个空洞的DocumentType node。 |
3 | getFeature (feature, edition) 这种方法回收了一个专门物品,用于特定特征和版本的专门产品。 删除。 Refer 。 |
4 | 如果投管处执行具体特点和版本,则采用这种方法进行测试。 |
DOM - DocumentType Object
www.un.org/Depts/DGACM/index_russian.htm 物体是获取文件数据的关键,在文件中,标识既可具有无效价值,也可具有文件Type目标值。 文件 类型物体是XML文件所述实体的接口。
Attributes
下表列出了DocumentType的属性。 物体
Attribute | Type | Description |
---|---|---|
DOMString | It returns the name of the DTD which is written immediately next to the keyword !DOCTYPE. | |
NamedNodeMap | It returns a NamedNodeMap object containing the general entities, both external and internal, declared in the DTD. | |
NamedNodeMap | It returns a NamedNodeMap containing the notations declared in the DTD. | |
internalSubset | DOMString | It returns an internal subset as a string, or null if there is none. This has been removed. Refer | .
DOMString | It returns the pubpc identifier of the external subset. | |
DOMString | It returns the system identifier of the external subset. This may be an absolute URI or not. |
Methods
DocumentType 继承其母体的方法,No,并执行ChildNo接口。
DOM - ProcessingInstruction Object
ProcessingInstruction提供该具体应用信息,这些信息一般载于XML文件Prolog部分。
处理指令可用于将信息传递给申请。 在标记外,纸面板可以出现在文件上。 可在博客中,包括文件类型定义、文字内容或文件之后出现。
消费物价指数始于特殊标签<。 改为?>。 处理内容的工作在紧接着?>时即告结束。
Attributes
下表列出了Processing Instruction Object——的属性。
Attribute | Type | Description |
---|---|---|
DOMString | It is a character that describes the information for the apppcation to process immediately preceding the ?>. | |
DOMString | This identifies the apppcation to which the instruction or the data is directed. |
DOM - Entity Object
实体界面是已知的实体,在XML文件中,有的放行,有的放开。 nodeName属性,从No继承,包括该实体的名称。
实体物体没有母子,其所有后继子只读。
Attributes
下表列出了Entity物体的属性:
Attribute | Type | Description |
---|---|---|
DOMString | This specifies the encoding used by the external parsed entity. Its value is null if it is an entity from the internal subset or if it is not known. | |
DOMString | For an unparsed entities, it gives the name of the notation and its value is null for the parsed entities. | |
DOMString | It gives the name of the pubpc identifier associated with the entity. | |
DOMString | It gives the name of the system identifier associated with the entity. | |
DOMString | It gives the xml encoding included as a part of the text declaration for the external parsed entity, null otherwise. | |
DOMString | It gives the xml version included as a part of the text declaration for the external parsed entity, null otherwise. |
DOM - Entity Reference Object
意向/i>物体是列入XML文件的一般实体参考资料,其中规定了替代案文的范围。 实体参考 目标对预先界定的实体不可行,因为它们被认为由超文本处理或XML处理器扩大。
这一接口没有自己的财产或方法,而是继承Node。
DOM - Notation Object
在本章中,我们将研究XML DOM Notation Object。 标注物财产提供了一种范围,可以确认具有公证特性、特定处理指令或非XML数据的内容。 不得对物特性和方法进行更改,因为这也被视为一种术语。
该物体从Node继承方法和特性。 其名称为nodeName。 没有父母。
Attributes
下表列出了Notation物体的属性:
Attribute | Type | Description |
---|---|---|
DOMString | It gives the name of the pubpc identifier associated with the notation. | |
DOMString | It gives the name of the system identifier associated with the notation. |
DOM - Element Object
可将XML要素定义为XML的组成部分。 部件可以作为集装箱持有文字、内容、属性、媒体目标或所有这些内容。 每当教区划出一项XML文件,反对知情,教区则通过一个要素节点。 内容节点载有案文,称为案文节点。
元素物继承了诺德物体的特性和方法,作为元素物也被视为诺德。 除文物性质和方法外,还有以下财产和方法。
Properties
下表列出了 Element 反对的属性:
Attribute | Type | Description |
---|---|---|
DOMString | It gives the name of the tag for the specified element. | |
schemaTypeInfo | TypeInfo | It represents the type information associated with this element. This has been removed. Refer | .
Methods
下表列出了要素目标方法——
Methods | Type | Description |
---|---|---|
DOMString | Retrieves the value of the attribute if exists for the specified element. | |
DOMString | Retrieves an attribute value by local name and namespace URI. | |
Attr | Retrieves the name of the attribute node from the current element. | |
Attr | Retrieves an Attr node by local name and namespace URI. | |
NodeList | Returns a NodeList of all descendant Elements with a given tag name, in document order. | |
NodeList | Returns a NodeList of all the descendant Elements with a given local name and namespace URI in document order. | |
boolean | Returns true when an attribute with a given name is specified on this element or has a default value, false otherwise. | |
boolean | Returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise. | |
No Return Value | Removes an attribute by name. | |
No Return Value | Removes an attribute by local name and namespace URI. | |
Attr | Specified attribute node is removed from the element. | |
No Return Value | Sets a new attribute value to the existing element. | |
No Return Value | Adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the quapfiedName, and its value is changed to be the value parameter. | |
Attr | Sets a new attribute node to the existing element. | |
Attr | Adds a new attribute. If an attribute with that local name and that namespace URI is already present in the element, it is replaced by the new one. | |
setIdAttribute | No Return Value | If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute. This has been removed. Refer | .
setIdAttributeNS | No Return Value | If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute. This has been removed. Refer | .
DOM - Attribute Object
Attr接口在“Element Object”中是一种属性。 典型的情况是,属性可允许的价值在与文件有关的图表中界定。 Attr物体不被视为文件树的一部分,因为它们实际上不是他们所描述的元素的幼.。 因此,儿童节点,诺尔特/伊>,previousSibpng和nextSibpng。 页: 1
Attributes
下表列出了Attribute物体的属性:
Attribute | Type | Description |
---|---|---|
DOMString | This gives the name of the attribute. | |
boolean | It is a boolean value which returns true if the attribute value exists in the document. | |
DOMString | Returns the value of the attribute. | |
Element | It gives the node to which attribute is associated or null if attribute is not in use. | |
boolean | It returns whether the attribute is known to be of type ID (i.e. to contain an identifier for its owner element) or not. |
DOM - CDATASection Object
在本章中,我们将研究XML DOM CDATA Section Object。 根据XML文件所载案文,根据所申报的内容加以分类或分类。 如果该文本被宣布为“特性数据”,则由教区划为“XML文件”改为“XMLDOM目标”。 另一方面,如果案文被宣布为无差别的特性数据,则该文本不为XML教区。 这些实体不被视为标志,也不会扩大。
利用《美洲贸易协定》条款的目的是要避免含有本可视为标记的特性的案文。
特性Data.data属性持有《欧洲自由贸易协定》一节所载的案文。 该接口通过Text接口继承CharatcterData。
There are no methods and attributes defined for the CDATASection object. It only directly implements the Text interface.
DOM - Comment Object
在本章中,我们将研究Comment Object。 评注作为说明或行文添加,以了解《反洗钱法》的宗旨。 评注可以用来包括相关的链接、信息和术语。 这些可能出现在《反洗钱法》的任何地方。
该评论界面继承了代表评论内容的CharacterData接口。
Syntax
XML的评论有以下各条:
<!-------Your comment----->
评论从“带”开始;!-并用——和”结束; 你可以添加文字说明,作为对特性的评论。 你们不能在对方内部提出一点意见。
There are no methods and attributes defined for the Comment object. It inherits those of its parent, CharacterData, and indirectly those of Node.
DOM - XMLHttpRequest Object
XMLHttpRequest Object在网页的客户与服务器之间建立了一种介质,可被许多文字语言所使用,如Java文、Jans、VB式和其他网络浏览器传输和操纵XML数据。
有了XMLHttpRequest,就可以更新网页的部分,而不必再上整页,在网页上填满后,请服务器接收数据,并将数据发送服务器。
Syntax
XMLHttpRequest物体可登记如下:
xmlhttp = new XMLHttpRequest();
处理所有浏览器,包括IE5和IE6,检查浏览器是否支持XMLHttpRequest,具体如下:
if(window.XMLHttpRequest) // for Firefox, IE7+, Opera, Safari, ... { xmlHttp = new XMLHttpRequest(); } else if(window.ActiveXObject) // for Internet Explorer 5 or 6 { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
使用XMLHttpRequest物体装载XML文档的例子可参见
Methods
下表列出了XMLHttpRequest物体——的方法。
S.No. | Method & Description |
---|---|
1 | <abort(>>><>p>>> 终止目前提出的要求。 |
2 | <getAllResponseHeaders(>>>><>p>>> 如果没有收到任何答复,所有答复的负责人都会被送回,或完全放弃。 |
3 | <getResponseHeader(>>>>>> > 如果尚未收到答复,或回复中未出现过头盔,则将载有具体负责人案文的插图归还,或告无效。 |
4 | url——是档案的地点。 真的意思是,在等待Http答复的情况下,请求得到同步处理。 虚假的意思是,在收到Http的答复后,请求得到同步处理。 pswd-为密码。 |
5 | send(string) >> 该请求被用于与开放式方法保持一致。 |
6 | RequestHeader(> >>> 标题中载有发出请求的标签/数值。 |
Attributes
下表列出了XMLHttpRequest物体的属性:
S.No. | Attribute & Description |
---|---|
1 | |
2 | readyState = 0, 即申请尚未启动。 readyState = 1 - 提出请求。 readyState = 2-quest is sent. readyState = 3——申请正在处理。 readyState = 4—— 请求已经完成。 |
3 | <responseText>>><>p>> 当服务器的答复是文字文件时,该财产即予使用。 |
4 | <responseXML>> >> 当服务器的答复是XML文件时,就使用这一财产。 |
5 | |
6 |
Examples
node.xml 内容如下:
<?xml version = "1.0"?> <Company> <Employee category = "Technical"> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> <Email>tanmaypatil@xyz.com</Email> </Employee> <Employee category = "Non-Technical"> <FirstName>Taniya</FirstName> <LastName>Mishra</LastName> <ContactNo>1234667898</ContactNo> <Email>taniyamishra@xyz.com</Email> </Employee> <Employee category = "Management"> <FirstName>Tanisha</FirstName> <LastName>Sharma</LastName> <ContactNo>1234562350</ContactNo> <Email>tanishasharma@xyz.com</Email> </Employee> </Company>
Retrieve specific information of a resource file
下面举例说明了如何利用getResponse Header()和readState等方法重新检索资源档案的具体信息。
<!DOCTYPE html> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = iso-8859-2" /> <script> function loadXMLDoc() { var xmlHttp = null; if(window.XMLHttpRequest) // for Firefox, IE7+, Opera, Safari, ... { xmlHttp = new XMLHttpRequest(); } else if(window.ActiveXObject) // for Internet Explorer 5 or 6 { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlHttp; } function makerequest(serverPage, myDiv) { var request = loadXMLDoc(); request.open("GET", serverPage); request.send(null); request.onreadystatechange = function() { if (request.readyState == 4) { document.getElementById(myDiv).innerHTML = request.getResponseHeader("Content-length"); } } } </script> </head> <body> <button type = "button" oncpck="makerequest( /dom/node.xml , ID )">Cpck me to get the specific ResponseHeader</button> <span id = "ID">Specific header information is returned.</span> </body> </html>
Execution
将这一档案作为elementattribute_removeAttributeNS.htm放在服务器上(该文档和Node_ns.xml在服务器上应走同样的道路)。 我们将获得以下产出:
Before removing the attributeNS: en After removing the attributeNS: null
Retrieve header infomation of a resource file
下面举例说明如何利用getAllResponseHeaders()这一方法检索资源档案目录。 使用ready State。
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <script> function loadXMLDoc() { var xmlHttp = null; if(window.XMLHttpRequest) // for Firefox, IE7+, Opera, Safari, ... { xmlHttp = new XMLHttpRequest(); } else if(window.ActiveXObject) // for Internet Explorer 5 or 6 { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlHttp; } function makerequest(serverPage, myDiv) { var request = loadXMLDoc(); request.open("GET", serverPage); request.send(null); request.onreadystatechange = function() { if (request.readyState == 4) { document.getElementById(myDiv).innerHTML = request.getAllResponseHeaders(); } } } </script> </head> <body> <button type = "button" oncpck = "makerequest( /dom/node.xml , ID )"> Cpck me to load the AllResponseHeaders</button> <span id = "ID"></span> </body> </html>
Execution
将这一文件作为http://allheader.html在服务器上(该文档和Node.xml应在服务器上走同样的道路)。 我们将获得以下产出(取决于浏览器)——
Date: Sat, 27 Sep 2014 07:48:07 GMT Server: Apache Last-Modified: Wed, 03 Sep 2014 06:35:30 GMT Etag: "464bf9-2af-50223713b8a60" Accept-Ranges: bytes Vary: Accept-Encoding,User-Agent Content-Encoding: gzip Content-Length: 256 Content-Type: text/xml
DOM - DOMException Object
Properties
下表列出DOMException物体的特性
S.No. | Property & Description |
---|---|
1 |
Error Types
S.No. | Type & Description |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | NetworkError >>A网络错误发生。 (平等法典价值:19和遗产不变名称:NETWORK_ERR) |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 |
Example
下面的例子表明,如何使用一个信息不灵的XML文件,造成对OMException。
error.xml 内容如下:
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> <Company id = "companyid"> <Employee category = "Technical" id = "firstelement" type = "text/html"> <FirstName>Tanmay</first> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> <Email>tanmaypatil@xyz.com</Email> </Employee> </Company>
以下是 姓名属性”的使用情况:
<html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> try { xmlDoc = loadXMLDoc("/dom/error.xml"); var node = xmlDoc.getElementsByTagName("to").item(0); var refnode = node.nextSibpng; var newnode = xmlDoc.createTextNode( That is why you fail. ); node.insertBefore(newnode, refnode); } catch(err) { document.write(err.name); } </script> </body> </html>
Execution
将这一档案作为服务器线路上的domexcption_name.html(这一文档和错误.xml在服务器上应当走同样的道路)。 我们将获得以下产出:
TypeErrorAdvertisements