XML

作者: codeSirCao | 来源:发表于2017-07-03 22:13 被阅读57次

    XML是存储和透过因特网传输结构化数据的标准
    1:可扩展标记语言
    2:被设计用来传输和存储数据
    3:只要会html XML就好学2者相同有不同
    4:一个是用在格式化显示数据 一个是用来数据交互的
    5:html一个标记语言预定义标签的 xml则是一个可扩展的自定义标记语言

    JS中创建一个xml //命名空间 节点 doctype

    eg: var xml=document.implementation.createDocument("","root",null)
    alert(xml.documentElement.tagName)//root
    var child= xml.createElement("child“) //类似dom 的创建追加一个节点
    xml.documentElement.appendChild(child)

    创建外部文件

    <? version="1.0" encoded="utf-8"?>
    申明编码 版本
    <root>
    <name money="much">曹士远</name>
    <age>23</age>
    </root>
    root是一个根标签节点 类似于html 但是必须是双标签区分大小写 可写属性

    XML 语法规则

    XML 文档必须有根元素

    类似上面最外层的root

    XML 声明

    第一行加上<?xml version="1.0" encoding="utf-8"?>
    注意:所有的 XML 元素都必须有一个关闭标签,XML 标签对大小写敏感,XML 必须正确嵌套,XML 属性值必须加引号,在 XML 中,空格会被保留

    实体引用

    如果您把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
    error eg:<message>if salary < 1000 then</message>
    eg:<message>if salary < 1000 then</message>
    < < less than
    > > greater than
    & & ampersand
    ' ' apostrophe
    " " quotation mark

    注释

    XML 以 LF 存储换行

    在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
    在 Unix 和 Mac OSX 中,使用 LF 来存储新行。
    在旧的 Mac 系统中,使用 CR 来存储新行。
    XML 以 LF 存储换行。
    基本语法和HTML类似详情请查看http://www.runoob.com/xml/xml-applications.html菜鸟教程

    CDATA这

    XML 文档中的所有文本均会被解析器解析。
    只有 CDATA 区段中的文本会被解析器忽略。
    <script>
    <![CDATA[
    function matchwo(a,b)
    {
    if (a < b && a < 0) then
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    ]]>
    </script>

    在上面的实例中,解析器会忽略 CDATA 部分中的所有内容。
    比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

    xml服务器

    通过 ASP 生成 XML

    XML 可在不安装任何 XML 软件的情况下在服务器端生成。
    如需从服务器生成 XML 响应 - 只需简单地编写以下代码并在 Web 服务器上把它保存为一个 ASP 文件:
    <%
    response.ContentType="text/xml"
    response.Write("<?xml version='1.0' encoding='ISO-8859-1'?>")
    response.Write("<note>")
    response.Write("<from>Jani</from>")
    response.Write("<to>Tove</to>")
    response.Write("<message>Remember me this weekend</message>")
    response.Write("</note>")
    %>

    通过 PHP 生成 XML

    如需使用 PHP 从服务器上生成 XML 响应,请使用下面的代码:
    <?php
    header("Content-type: text/xml");
    echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
    echo "<note>";
    echo "<from>Jani</from>";
    echo "<to>Tove</to>";
    echo "<message>Remember me this weekend</message>";
    echo "</note>";
    ?>
    请注意,响应头部的内容类型必须设置为 "text/xml"。

    从数据库生成 XML

    XML 可在不安装任何 XML 软件的情况下从数据库生成。
    如需从服务器生成 XML 数据库响应,只需简单地编写以下代码,并把它在 Web 服务器上保存为 ASP 文件:
    <%
    response.ContentType = "text/xml"
    set conn=Server.CreateObject("ADODB.Connection")
    conn.provider="Microsoft.Jet.OLEDB.4.0;"
    conn.open server.mappath("/db/database.mdb")

    sql="select fname,lname from tblGuestBook"
    set rs=Conn.Execute(sql)

    response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")
    response.write("<guestbook>")
    while (not rs.EOF)
    response.write("<guest>")
    response.write("<fname>" & rs("fname") & "</fname>")
    response.write("<lname>" & rs("lname") & "</lname>")
    response.write("</guest>")
    rs.MoveNext()
    wend

    rs.close()
    conn.close()
    response.write("</guestbook>")
    %>

    其实还是这个主要XML DOM 高级(前端吗)

    下面的实例中使用的 XML 文件:books.xml

    下面的实例检索第一个 <title> 元素的文本值:

    实例
    txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
    下面的实例检索第一个 <title> 元素的 "lang" 属性的文本值:
    实例
    txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
    filename=tryxml_dom_getattribute)

    改变元素的值

    下面的实例改变第一个 <title> 元素的文本值:
    实例
    x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
    x.nodeValue="Easy Cooking";

    创建新的属性

    XML DOM 的 setAttribute() 方法可用于改变现有的属性值,或创建一个新的属性。
    下面的实例创建了一个新的属性(edition="first"),然后把它添加到每一个 <book> 元素中:
    实例
    x=xmlDoc.getElementsByTagName("book");

    for(i=0;i<x.length;i++)
    {
    x[i].setAttribute("edition","first");
    }

    创建元素

    XML DOM 的 createElement() 方法创建一个新的元素节点。
    XML DOM 的 createTextNode() 方法创建一个新的文本节点。
    XML DOM 的 appendChild() 方法向节点添加子节点(在最后一个子节点之后)。
    如需创建带有文本内容的新元素,需要同时创建元一个新的元素节点和一个新的文本节点,然后把他追加到现有的节点。
    下面的实例创建了一个新的元素(<edition>),带有如下文本:First,然后把它添加到第一个 <book> 元素:
    实例
    newel=xmlDoc.createElement("edition");
    newtext=xmlDoc.createTextNode("First");
    newel.appendChild(newtext);

    x=xmlDoc.getElementsByTagName("book");
    x[0].appendChild(newel);

    删除元素

    下面的实例删除第一个 <book> 元素的第一个节点:
    实例
    x=xmlDoc.getElementsByTagName("book")[0];
    x.removeChild(x.childNodes[0])

    XML 数据岛

    它是什么?XML 数据岛是嵌入到 HTML 页面中的 XML 数据。
    为什么要避免使用它?XML 数据岛只在 Internet Explorer 浏览器中有效。
    用什么代替它?您应当在 HTML 中使用 JavaScript 和 XML DOM 来解析并显示 XML。
    如需更多有关 JavaScript 和 XML DOM 的信息,请访问 XML DOM 教程

    XML 数据岛实例

    本例使用 XML 文档 "cd_catalog.xml"。
    把 XML 文档绑定到 HTML 文档中的一个 <xml> 标签。id 属性定义数据岛的标识符,而 src 属性指向 XML 文件:
    实例
    本实例只适用于 IE 浏览器
    <html><body><xml id="cdcat" src="cd_catalog.xml"></xml><table border="1" datasrc="#cdcat"><tr><td><span datafld="ARTIST"></span></td><td><span datafld="TITLE"></span></td></tr></table></body></html>

    现实实例:

    XML 气象服务

    XML 国家气象服务案例,来自 NOAA(National Oceanic and Atmospheric Administration):
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <current_observation>

    <credit>NOAA's National Weather Service</credit>
    <credit_URL>http://weather.gov/</credit_URL>

    <image>
    <url>http://weather.gov/images/xml_logo.gif</url>
    <title>NOAA's National Weather Service</title>
    <link>http://weather.gov</link>
    </image>

    <location>New York/John F. Kennedy Intl Airport, NY</location>
    <station_id>KJFK</station_id>
    <latitude>40.66</latitude>
    <longitude>-73.78</longitude>
    <observation_time_rfc822>Mon, 11 Feb 2008 06:51:00 -0500 EST
    </observation_time_rfc822>

    <weather>A Few Clouds</weather>
    <temp_f>11</temp_f>
    <temp_c>-12</temp_c>
    <relative_humidity>36</relative_humidity>
    <wind_dir>West</wind_dir>
    <wind_degrees>280</wind_degrees>
    <wind_mph>18.4</wind_mph>
    <wind_gust_mph>29</wind_gust_mph>
    <pressure_mb>1023.6</pressure_mb>
    <pressure_in>30.23</pressure_in>
    <dewpoint_f>-11</dewpoint_f>
    <dewpoint_c>-24</dewpoint_c>
    <windchill_f>-7</windchill_f>
    <windchill_c>-22</windchill_c>
    <visibility_mi>10.00</visibility_mi>

    <icon_url_base>http://weather.gov/weather/images/fcicons/</icon_url_base>
    <icon_url_name>nfew.jpg</icon_url_name>
    <disclaimer_url>http://weather.gov/disclaimer.html</disclaimer_url>
    <copyright_url>http://weather.gov/disclaimer.html</copyright_url>

    </current_observation>

    相关文章

      网友评论

        本文标题:XML

        本文链接:https://www.haomeiwen.com/subject/djizcxtx.html