XML 学习

前端之家收集整理的这篇文章主要介绍了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 赋值

原文链接:https://www.f2er.com/xml/296796.html

猜你在找的XML相关文章