XML 被设计用来传输和存储数据。HTML 被设计用来显示数据。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。XML 没有预定义的标签。xml文件的类型为"text/xml"
.
标签要求
大小写敏感. 必须有开始有结束标签. 必须正确嵌套. 必须有一个根标签(最底层). XML的标签也可像HTML加属性, 属性必须用冒号包围. 小于号和&
符号.$lt;
和&
.其余例如'
='
; "
="
. 注释和HTML一致.换行使用linux\n
LF的方法.
标签名不能以xml开头; 标签名不能有空格; 标签名不能以数字和标点来开头.标签名避免使用:-.
这些符号
注意: 在XML中的,多个连续的空格会被保存, 并不会像HTML一样截断为一个空格.
避免使用属性!尽量使用标签记录数据!属性不能存多重的值, 不能存树结构, 不易扩展.
<?xml version="1.0" encoding="ISO-8859-1"?>
首句一般指明xml文档.
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
用来指明CSS来格式化xml数据.和普通HTML类似,一个一个表明style就好了.
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
使用xslt来格式化XML数据. XSL的实际用途是将xml数据转为html显示.更多XLS可以参考XLS.
XML-JS
XMLHttpRequest对象
xmlhttp=new XMLHttpRequest();
一般浏览器均可使用此句来新建对象.
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
老版本的IE5,6使用activeX对象.
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
解析XML文件
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
使用XMLHttpRequest对象或ActiveXObject对象,进行http get打开, 并解析.
解析XML字符串
//txt is string as XML contents
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);
}
对于字符串,大部分浏览器使用 DOMParser() 进行解析, 而IE可能需要使用微软大法的ActiveX对象的 loadXML(content) 来解析.
XML DOM
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
使用xmlDoc 代替HTML DOM的document,ByName改为ByTagName.然后调用子节点来获取其值(其实没有子节点..).
- createElement() 方法创建新的元素节点。
- createTextNode() 方法创建新的文本节点。
- appendChild() 方法向节点添加子节点(在最后一个子节点之后)。
- removeChild() 方法删除指定的节点(或元素)。
- getAttribute(“lang”); 获取属性
- setAttribute(“name”,”value”); 设置属性
命名空间
xmlns:namespace-prefix="namespaceURI"
xmlns属性指明命名空间. 命名空间可以区分不同的标签但拥有相同标签名.尤其在xsl将xml转为html的过程中可以用xsl:命名空间区分哪些是html部分,哪些是xml部分.
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
写下XML数据
PHP method
注意使用header(“Content-type:text/xml”);
<?php
header("Content-type:text/xml");
echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
echo "<note>";
echo "<from>John</from>";
echo "<to>George</to>";
echo "<message>Don't forget the meeting!</message>";
echo "</note>";
?>