• 周四. 5月 30th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

xml基础学习笔记02

admin

11月 28, 2021

  接着上次的xml笔记01 ,记录一下如何DOM创建xml

  一、由于没有特意来写博客,都是在程序中用注释的方法记录笔记,整理过来难免格式错误,排版什么的,大家好事看不懂就仔细看给出的代码加上注释,一定会看明白的,代码中用到的方法,php手册都有。不知道的可以查手册,这里说说我查手册时的一个总结:

    1.DOMNode 类 ,这是一个dom的根类,里面定义了一下属性和方法。比如:$nodeName属性 appendChild方法 等等

    2、DOMDocument 类,这是一个文档类,它继承domNode类,里面有自己的属性和方法

        3、DOMElement 类,是一个元素类,也是继承domNode类,当然也有自己的属性和方法

    4、DOMAttr 类 一个属性类,和上面一样

    5、DOMCdataSection类,一个CDATA类,同上

    6、DOMText 类,一个文本类,同上

  如何创建和使用对应的类?

    看上篇博客有这几个对象:

      DOMdocument object  –>   DOMDocument 类

      DOMElement Object  –>  DOMElement 类

      DOMText Object  –>  DOMText 类

      DOMNodeList Object   这个是节点列表对象是 对应 DOMNodeList 类

  二、现在给出代码,就把注释当做博文吧。

    

  1 <?php
  2 /**
  3  * 
  4  * @authors wxb (http://www.cnblogs.com/wxb0328/)
  5  * @date    2014-09-30 22:36:02
  6  * @version $Id$
  7  */
  8 /*
  9 34、DOM创建XML
 10             1、再次强调:在xml里,一切皆是节点,包括换行符和空白,都是文本节点(xml是纯文本的,所以这些自然也是节点),下面说的属性也是一个节点,叫做属性节点
 11             2、如何生成下面这样的xml文件?
 12                     <?xml version='1.0' encoding='utf-8' ?>
 13                     <bookstore>
 14                      <book id="b001">
 15                       <title>路遥-平凡的世界</title>
 16                       <intro><![CDATA[这是一部经典书籍&老少皆宜]]></intro>
 17                      </book>
 18                     </bookstore>
 19                 DOM怎么创建?
 20                     方法一:从里往外
 21                         1、创建 路遥-平凡的世界 文本节点
 22                         2、创建普通的title节点
 23                         3、把 路遥-平凡的世界 文本节点,加入到title节点中
 24                         4、创建CDATA节点
 25                         5、创建intro节点
 26                         6、把CDATA节点放到intro节点中
 27                         7、创建book节点
 28                         8、把title和intro节点放到book节点中
 29                         9、创建id属性节点
 30                         10、把属性节点放到book节点中
 31                         11、再创建bookstore节点
 32                         12、把book节点放到bookstore节点中
 33                         13、把bookstore节点放到文档中
 34                     方法二:从外往里
 35 
 36                     在上面的步骤中我们提取出下面几种操作:
 37                         1、如何创建文本节点
 38                         2、如何创建普通节点
 39                         3、如何创建CDATA节点
 40                         4、如何创建属性节点
 41                         5、如何增加子节点
 42                     下面开始完成这个xml的创建,操作中的方法的具体用法和说明查php手册
 43 */
 44 // 创建DOM文档对象
 45 $dom = new DOMDocument('1.0','utf-8');
 46 
 47 // 1、创建文本节点,
 48 // 调用createTextNode()方法
 49 $text = $dom->createTextNode('路遥-平凡的世界');
 50 // 2、创建title元素
 51 $title = $dom->createElement('title');
 52 
 53 // 3、把 路遥-平凡的世界 文本节点,加入到title节点中
 54 $title->appendChild($text);
 55 // 4、创建CDATA节点
 56 $cdata = $dom->createCDATASection('这是一部经典书籍&老少皆宜');
 57 // 5、创建intro节点
 58 $intro = $dom->createElement('intro');
 59 // 6、把CDATA节点放到intro节点中
 60 $intro->appendChild($cdata);
 61 // 7、创建book节点
 62 $book = $dom->createElement('book');
 63 // 8、把title和intro节点放到book节点中
 64 $book->appendChild($title);
 65 $book->appendChild($intro);
 66 // 9、创建id属性节点
 67 $id = $dom->createAttribute('id');
 68 $id->value = 'b001';
 69 // 10、把属性节点放到book节点中
 70 $book->appendChild($id);
 71 // 11、再创建bookstore节点
 72 $bookstore = $dom->createElement('bookstore');
 73 // 12、把book节点放到bookstore节点中
 74 $bookstore->appendChild($book);
 75 // 13、把bookstore节点放到文档中
 76 $dom->appendChild($bookstore);
 77 
 78 // 输出看看
 79 /*
 80  *
 81  * 为什么这个方法可以输出,看名字不想啊,查看手册我们可以看到
 82  * string DOMDocument::saveXML ([ DOMNode $node [, int $options ]] )
 83  * Returns the XML, or FALSE if an error occurred. 
 84  * 这个方法,参数可以缺省,返回是一个xml,也就是字符串吧,定义不是:string吗
 85  */
 86 //echo $dom->saveXML();
 87 /* 
 88  * 我们看到结果如图1,页面上什么也没有,但是请注意头部那个标签,我们再右键看源码。如图2
 89  * 明白了,之所以没有在页面上看到是因为浏览器解析了我们的这个xml
 90  * 那么怎么避免浏览器解析?
 91  * 给浏览器发生一个头部信息,告诉浏览器给的是xml 不要解析
 92  * header("content-type:text/xml");
 93  * 
 94 */
 95 //现在我们先注释掉上面的输出,用下面的输出 
 96 //header("content-type:text/xml");
 97 //echo $dom->saveXML();
 98 // 结果如图3
 99 
100 /* 现在我们试着将上面生成的xml 保存成一个文件
101  * 使用save()方法
102  * int DOMDocument::save ( string $filename [, int $options ] )
103  *         filename The path to the saved XML document
104 
105  */
106 echo $dom->save('34.xml') ? "ok" : "no";
107 // 成功生成xml文件,如图4
108 
109 /*
110  * 同时,我们发现,生成的这个xml文档,没有任何格式,没有空格、没有换行、一行就完成了。
111  * 这恰恰验证了 上面说的 在xml中一切皆是节点
112  */
113 
114 ?>

图片:

图一

图二

图三:

图四:

  好了,就这么多吧,睡觉了。如果有什么错误,欢迎大家批评指正啊。晚安,博客园

《xml基础学习笔记02》有3个想法
  1. Wow, marvelous blog structure! How lengthy have you been blogging for?
    you made blogging look easy. The entire look of your website is great,
    as smartly as the content! You can see similar here ecommerce

  2. Keyloggers are currently the most popular way of tracking software, they are used to get the characters entered on the keyboard. Including search terms entered in search engines, email messages sent and chat content, etc.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注