前端之家收集整理的这篇文章主要介绍了
xml基本概念总结,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
xml的重点主要是 1.特点 2.语法规范 3.解析与创建 4.DTD(文档类型定义) 【还有Schema 以后可以自行学习的,暂时还没有看】 DOMDocument 来解析 xml 步骤主要是,一步一步深入,思路明确,但是比较麻烦 1.得到面 $xml = new Document("1.0","utf-8"); $xml->load('xxx.xml'); 2.得到线(得到节点元素) $xml->getElementByTagName('节点名')- 3.得到点 $nodelist->item(0/1/2.....); 基本概念 1.计算机中用于信息的交换,分离样式和数据,单独得到数据 2.xml是学习webserver和ajax的基础,没有替换掉html之后,出现了xhtml(扩展的超文本语言) 3.xml定义 xml属于可扩展性语言,类似于html,是一种
标记语言 目的:传输数据 4.xml特点 可以自行定义
标签,并且
标签名不能是数组开头 xml和html最大的区别就是数据和样式分离 语法规范 //声明部分--只能这么写 <?xml version="1.0" encoding="utf-8"?> //节点部分--xml 中所有都是节点(普通节点、文本节点(换行节点、空白节点)) //只有一个根节点、成对出现(允许<br/><img/>单便签) //
属性尽量小写,
属性值只能是 string 类型.必须将"" <root><aa id='12'><bb><br/>你好</bb></aa></root> //注释 <!-- 我是注释 --> //特殊字符--用实体代替 < > " & ' < > "" & '' //其实只有< 和 & 是非法的,但是最好全携程实体字符 如果存在大段文本 建议使用 CDATA 节点 <![CDATA[]]> //拥有正确的语法的XML文档是像是"形式良好" 1. xml 文档必须有根目录 2. xml 文档必须有
关闭目录 3. xml
标签对大小写感兴趣 4. xml 元素必须被正确的嵌套 5. xml
属性必须加"" DOM 解析 XML (解析xml的标准叫做DOM标准,xml和html都遵守DOM标准,所以
PHP,c,js解析是必须遵守DOM标准) 1.使用 getElementsByTagName() 和 childNode() JS解析中有 getElementsByTagName(),getElementsByClassName(),getElementById(只有ID是Element,没有s) 2.
PHP的DOM 解析 XML 步骤 1.读取xml文档(创建DOM对象,读取文档) 2.通过getElementsByTagName()
获取对象 3.把 2 中的一组对象挑选节点->item(0) //创建DOM对象,读取xml文档 $dom = new DOMDocument("1.0","utf-8"); $dom->load('001.xml'); //得到tital节点 $ts = $dom->getElementsByTagName('tital'); //返回的是节点列表对象 Object DOMNodelist $ts->length; //节点列表个数 $ts->item(0)->whoText; //第一个节点的文本
内容 //一下两个
效果一样。 childNodes ==> 返回子节点的集合 nodeValue ==> 返回节点值 $dom->getElementsByTagName('title')->item(0)->nodeValue; $dom->getElementsByTagName('title')->item(0)->childNodes->item(0)->wholeText; DOM 创建 XML (自己制作API的时候需要用到) 1.创建文本节点、普通节点、
属性节点、CDATA节点 2.
添加到父节点中 //创建DOM对象 $dom = new DOMDocument("1.0","utf-8"); //创建文本节点、普通节点、CDATA节点、
属性节点 $text = $dom->createTextNode('你好'); $name = $dom->createElement('name'); $cdata = $dom->createCDATASection('这本书<>很好'); $attr = $dom->createAttribute('goods_id'); $attr->value = '001'; //
添加节点 $name->appendChild($text); //
输出或者保存 header('content-type:text/xml'); echo $dom->savaxml($dom); $dom->save('./02.xml'); DOM
删除和
修改 XML节点 //创建DOM对象,载入
页面 $dom = new DOMDocument("1.0","utf-8"); $dom->load('001.xml'); //找到节点 $t1 = $dom->getElementsByTagName('book')->item(0); //
修改节点中的
内容,使用replaceChild() $newt1 = $dom->createTextNode('999'); $t1->replaceChild($newt1,$t1->firstChild) //
删除节点==>使用parentNode()找到父节点,再
调用removeChild()
删除自己 $t1->parentNode->removeChild($t1); //保存或者
输出 header('content-tyep:text/xml'); echo $dom->savexml(); $dom->save('01.xml');