XML 学习

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇