XML与HTML的区别 :XML实现了数据和显示的分离,XML具有标签自描述性,标签是自己命名的,用来描述数据<姓名>凌晨</姓名> 标签名字一律小写
学习XML的重点:一:特点,二:语法规范,三:解析与创建 四:DTD
语法规范
<?xml version="1,0" encoding="utf-8"?> 只能有一个根节点ROOT
要注意特殊字符!
CDATA节点——放大段文本原样解析 类似于定界符
获取各大网站的API ,从而获得相关xml或者jason 的数据
例子 土豆API
XML 的DOM 解析
通过PHP解析XML
1.把XML文件读入进来,形成XML文档对象 document对象
2、通getElementByTagName()得到一组节点
3、得到的一组对象,取得其某一个,得到具体节点、
① $dom = new DOMdocument('1.0','uth-8')
②载入XML文档
$dom->load();
$dom->getElementByTagName();返回DOMNodelist对象
DOMNodelist->item() 返回domelement对象
$dom->getElementByTagName('title')->item(1)->childNodes->item(0)->wholeText;
简化写法
echo $dom->getElementByTagName('title')->item(1)->nodeValue;
DOM创建XML
首先 createElement 再使用createtextnode 然后通过appendchild 进行节点之间的分配创建文本节点 最后save PS :不要忘记$xml->appendChild($root);
以下是一个详细的用法
//定义博文数据,实际数据应该从数据库中取出 $articles = array(array('title' => '深入浅出CURL', 'author' => '360weboy'), array('title' => '深入理解execution context', 'author' => 'jack.yin')); //构建dom document $xml = new DOMDocument(); //格式化输出 $xml->formatOutput = TRUE; //设置xml文档的编码为utf8 $xml->encoding = 'utf8'; //构建文章根节点 $root = $xml->createElement('articles'); if (count($articles) > 0) { //遍历数组,生成文章子节点 foreach($articles as $article) { //建立文章节点 $a = $xml->createElement('article'); //建立title字节点 $title = $xml->createElement('title'); //建立文本节点,并且加入到title节点下 $title->appendChild($xml->createTextNode($article['title'])); //添加title节点到article节点下 $a->appendChild($title); $author = $xml->createElement('author'); $author->appendChild($xml->createTextNode($article['author'])); $a->appendChild($author); //添加article节点到根节点下 $root->appendChild($a); } } //添加根节点到xml文档下 $xml->appendChild($root); //设置charset为utf-8,不然浏览器会显示中文为乱码 header('Content-Type: text/html;charset=UTF-8'); //保存xml文档到artciles.xml if ($xml->save('articles.xml') !== FALSE) { echo 'articles.xml已经生成保存!'; } else { echo 'articles.xml生成失败'; }
<?xml version="1.0"?> <articles> <article> <title><![CDATA[深入浅出CURL]]></title> <author>360weboy</author> </article> <article> <title><![CDATA[深入理解execution context]]></title> <author>jack.yin</author> </article> </articles
PS:创建属性节点 使用createAtribute 然后用->value 赋值
原文链接:https://www.f2er.com/xml/296796.html