1. XML 语法
<?xml version="1.0" encording="utf-8 ?>
<root>
<username aa="" bb="" cc="">
</username>
</root>
2. xml 经常用的 实体转换符号
{> 相当于 > } { < 相当于 <} {& 相当于 &} {' 相当于 ' }{ & quot 相当于 "}
3.XML 校验
var xml =new Active XObject (); 创建对象
xml.load("文件名地址");
4. DTD 的语法
1.内部引用
<!DOCTYPE 根元素 [内容] >
2.内部DTD 引用
<!DOCTYPE 根元素 SYSTEM ".dtd 路径">
3.DTD 的元素
<!ELEMENT NAME(元素名称) 元素类型 >
<!ELEMENT NAME CONTENT(元素类型) >
3种类型:
1). EMPTY 不能包含子元素和文本,但可以有属性
2). ANY 可以包含任何 定义的 元素内容
3). #PCDATA 可以包括任何字符数据,不能包含其它子元素
4.<! ATTLIST 元素名称
属性名称 属性类型 属性特点
属性的类型:1. CDATE 任何字符。2.ID 3.IDREF /IDREFS 枚举 4.
属性特点: 1.#REQUEST 必须有一个以上 2.#IMPLIED 有或者没有 3.DEFAULT 默认
5. XML DOM
1.创建DOM对象
$xmldoc = new DOMDoucment();
2.加载 xml 文件
$xmldoc->load("xml文件名");
3.最后保存xml文件
$xmldoc->save("");
4.演示如何添加一个学生信息
(1)取出根节点,找出根节点的 第1 个
$root = $xmldoc->getElementByTayName("班级")->item(0);
(2)创建学生节点
$stu_node = $xmldoc->createElement("学生");
(3)创建名字节点
$stu_node_name =$xmldoc->createElement("名字");
名字节点的值为张三
$stu_node_name->nodeValue="张三";
创建完了名字节点,把名字节点挂载到学生节点
$stu_node->appendchild($stu_node_name);
创建年龄节点
$stu_node_age = $xmldoc->createElement("年龄");
$stu_node_age—>nodeValue="44";
把年龄节点挂载到学生节点下
$stu_node->appendchild($stu_node_age);
创建介绍节点
$stu_node_intro=$xmldoc->createElement("介绍");
$stu_node_intro->nodeValue="iiiiiiiiiiiiiii";
介绍节点挂载到学生节点
$stu_node->appendchild($stu_node_age);
把学生节点挂载到 根节点下
$root->appendChild($stu_node);
4 从内存取出数据 保存XML
1.更新文件
$xmldoc->save("classes.xml");
2. 另保存
$xmldoc->save("newclasses.xml");
5. 删除的例子(思路:把要删除的节点和根节点断开就可以了)
1.$xmldoc =new DOMDocument(); 创建对象
2.$xmldoc -> load("class.xml"); 加载读取的xml文件
3.$root =$xmldoc->getElementsByTagName("班级") ->item(0); 找到第一个根节点 (班级)
4.$student =$xmldoc ->getElementsByTayName("学生") -> item(2); 找到第二个学生
5. $root -> removeChild($student); 断开班级节点和学生节点
第二种方法: $student->parentNode()->removeChild($student); 这种方法不找根节点 直接调入父节点 再删除自己
6. $xmldoc ->save ("class.xml"); 保存class.xml
5. XML XPath 技术 (把所加载的 转换成 XPath 模式即可)
1. $xmldoc = new DOMDocument();
2.$xmldoc ->load("class.xml");
3. $domXPath = new DOMXPath ($xmldoc); 把$xmldoc 转换成 DOMXPath 模式
4. $a = $domXPath ->query("/b/a"); 找到b下的a节点
5. DOMXPath 只是提供快捷找到节点。怎么操作与它无关。
6. XML Simplepath 技术
1.Simplepath 可以直接 载入 xml文件 所返回的数据 是 数组,然后用 foreach 循环即可
$simplepath = simple_load_file("class.php");
2.Simplepath 也可以直接 载入 对象 所返回的数据 是 数组
1. $xmldoc = new DOMDocument();
2.$xmldoc ->load("class.xml");
3. $simplepath = simplexml_import_dom($xmldoc);
3. Simplepath 与 XPath 结合使用
$a = $simplepath -> xpath("/b/a");