xml学习

用途:

xml用来传输和存储数据,html用来显示数据

简介:

xml是可扩展标记语言(extensible markup language)
xml标签没有预定义,需要自行定义标签。
xml被设计成自我描述。
xml是w3c的推荐标准。
xml不是要取代html,而是对html的补充。
xml不做任何事情,xml被用来结构化储存和传输数据。
xml将数据从html中分离出来,html着重显示。
xml以纯文本来保存数据,有利于数据的共享和传输。
xml是许多新internet技术的基础,比如wsdl-用来描述web sevice
soap-用来传递消息;xhtml-新的html版本;rss-用于rss feed的语言;
smil-用于描述针对web的多媒体;

xml结构

xml包括一个根元素,从根元素出发构成一个树状的结构

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE bookstore SYSTEM "bookstore.dtd">
<bookstore>
<book category="cooking">
    <title lang="en">Everyday Italia</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
</book>
<book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K.Roeling</author>
    <year>2001</year>
    <price>31</price>
</book>
</bookstore>

在上面的例子中book中的”category“是属性,通过属性可以标识元素,类似于html中的name标签
dtd是文档类型语法规则。我们知道xml是一种严格的类型定义语言,为了规范语法有语法规则定义,语法规则用doctype来定义
examle:

<!DOCTYPE bookstore [
    <!ELEMENT bookstore(book)>
    <!ELEMENT book (title,author,year,price)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    <!ELEMENT year (#PCDATA)>
    <!ELEMENT price (#PCDATA)>
]>

除了dtd,在xml中还可以用xml schema来描述语法规则
example:

<xs:emement name="bookstore">
<xs:complexType>
    <xs:sequence>
        <xs:element name="book">
            <xs:complextype>
                <xs:sequence>
                    <xs:element name="title" type="xs:string"/>
                    <xs:element name="author" type="xs:string"/>
                    <xs:element name="year" type="xs:string"/>
                    <xs:element name="price" type="xs:string"/>
                </xs:sequence>
            </xs:complextype>
    </xs:sequence>
</xs:complexType>
</xs:emement>

xml不能直接显示,除非用了css或xslt
例子:

    <?xml version="1.0" encoding="utf-8">
    <?xml-stylesheet type="text/css" href="bookstore.css">
    ....

    <?xml verision="1.0" encoding="urf-8">
    <?xml-stylesheet type="text/xsl" href="bootstore.xsl">
    ....

xml与javascript

xmlhttprequest:
使用xmlhttpresquest可以
1)在不加载页面的情况下更新网页;
2)页面加载后从服务器获得数据;
3) 页面加载后向服务器请求数据;
4) 向服务器发送数据。
例子:

<html>
<head>
<script type="text/javascript">
var xmlhttp;
function loadxmldoc(url){
    xmlhttp=null;
    if(window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(xmlhttp!=null){
        xmlhttp.onreadystatechange=state_Change;
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
    }
    else{
        alert("you browser does not support XMLHTTP");
    }
}

    function state_Change(){
        if(xmlhttp.readyState==4){
            if(xmlhttp.status==200){
                //200 is ok
                document.getElementById('t1').innerHTML=xmlhttp.responseText;
            }
            else{
                alert(Problen retrieving xml data);
            }
        }
    }
   </script>
   </head>
    <body onload="loadXMLDoc('/test.txt')"> <div id='t1'>
        </div><br/>
        <button="loadxmldoc('/text2.txt')">click</button>
    </body>
    </html>

xmldoc

xmldoc用来装载和解释xml

var xmldoc=new ActiveXObject("microsoft.xmldom")//windows用法
or
var xmldoc=document.implementation.createDocument("","",null)//其他浏览器用法
然后:
xmldoc.async="false"
xmldoc.load("test.xml");//load a file
xmldoc.loadXML(txt);//load a string buff
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值