XML
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>