XML学习笔记

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值