XML学习笔记

来源:互联网 发布:stc12单片机 编辑:程序博客网 时间:2024/05/21 13:58

XML被设计来结构化、传输和存储数据,其焦点是数据的内容
HTML被设计来显示数据的,其焦点是数据的外观
即XML旨在传输信息,HTML旨在显示信息

XML没有预定义的标签
XML允许作者定义自己的标签和自己的文档结点
XML的声明

<?xml version="1.0" encoding="UTF-8"?>

XML自己定义的结点标签表示方法:

<root>    <child>        <subchild>...</subchild>    </child></root>

XML标签对大小写敏感,<root><Root>是不同的
XML的属性值必须加引号

XML的内容中,特定的符号须使用实体引用

符号 实体引用 意义 < &lt; less than > &gt; greater than & &amp; ampersand ' &apos; apostrophe " &quot; quotation mark

XML连续的空格会被裁剪为一个
XML应尽量避免使用属性,如果信息感觉起来像数据,就该使用元素结点表示
如下:

把数据放在属性里:

<note date="2017/04/27">...</note>

把数据用子结点表示:

<note>    <date>2017/04/27<date></note>

元素结点再加以扩展:

<note>    <date>        <day>27</day>        <month>04</month>        <year>2017</2017>    </date></note>

可用属性来标志不同的结点:

<note id="001">...</note><note id="002">...</note><!--id是一个属性标识符,并不是数据的组成部分-->


XMLHttpRequest

XMLHttpRequest对象用于后台与服务器交换数据
有以下作用:

  • 在不重新加载页面的情况下更新网页
  • 在页面已加载后,从服务器请求数据
  • 在页面已加载后,从服务器接收数据
  • 在后台向服务器发送数据

创建XMLHttpRequest对象

xmlhttp = new XMLHttpRequest();//旧版的IE浏览器(IE5和IE6)使用ActiveX对象//xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

把XML文档解析到XML DOM对象中
(浏览器都内建有XML解析器)

解析XML文档(注意:这是向服务器发出请求,必须打开服务器运行)

xmlhttp = new XMLHttpRequest();xmlhttp.open("GET","books.xml",false);smlhttp.send();xmlDoc=xmlhttp.responseXML;

解析XML字符串

txt="<book><name>mybook</name><author>me</author><price>100</price></book>"parser = new DOMParser();//parserFromString(text,contentType)XmlDoc = parser.parserFromString(txt,"text/xml")//IE浏览器用的是loadXML()

把XML文档解析到XML DOM的实例:
books.xml的内容

<?xml version="1.0" encoding="UTF-8"?><book>    <name>mybook</name>    <author>Edward</author>    <price>100</price></book>

XML解析成XML DOM,再由javascript操作:

    <script>        $(document).ready(function(){            xmlhttp = new XMLHttpRequest();            xmlhttp.open("GET","books.xml",false);            xmlhttp.send();            xmlDoc=xmlhttp.responseXML;            document.getElementById("bookname").innerHTML=xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;            document.getElementById("bookauthor").innerHTML=xmlDoc.getElementsByTagName("author")[0].childNodes[0].nodeValue;            document.getElementById("bookprice").innerHTML=xmlDoc.getElementsByTagName("price")[0].childNodes[0].nodeValue;        });    </script></head><body>    BookName:<span id="bookname"></span><br/>    BookAuthor:<span id="bookauthor"></span><br/>    BookPrice:<span id="bookprice"></span><br/></body>

结果:
axaj


创建元素结点 xmlDoc.createElement()
创建文本结点xmlDoc.createTextNode()
设置结点属性setAttribute(“key”,”value”)
向某一结点追加一个子结点appendChild()

例如为<book>增加一个新的子结点<ibsn>isbn-007</isbn>

elementNode=xmlDoc.createElement("isbn");//新的元素结点textNode=xmlDoc.createTextNode("isbn-007");//新的文本节点elementNode.appendChild(textNode);//将文本结点绑在新的元素结点下面xmlDoc.getElementsByTagName("book")[0].appendChild(elementNode);//为<book>结点追加新的子元素结点
0 0
原创粉丝点击