XML 学习

来源:互联网 发布:台湾妹网络自拍 编辑:程序博客网 时间:2024/05/03 20:37

  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文档如下:

<?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 赋值

0 0
原创粉丝点击