Hom's Blog


XML学习

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>";
?>

Reference

  1. XML DOM


◆ 本文地址: http://platinhom.github.io/2015/07/19/XML-study/, 转载请注明 ◆

前一篇: AJAX学习
后一篇: Mac使用技巧


Contact: Hom / 已阅读()
Source 类别: IT  标签: XML