• xml 学习


    1.  XML 语法

      <?xml version="1.0" encording="utf-8  ?>

      <root>

        <username aa="" bb=""  cc="">      

        </username> 

      </root>

    2. xml 经常用的 实体转换符号

      {&gt;    相当于    > }   { &lt;      相当于      <}       {&amp;    相当于  &}   {&apos;     相当于 ' }{ & quot   相当于 "}

    3.XML  校验

      var xml =new  Active XObject ();     创建对象

      xml.load("文件名地址");

    4. DTD  的语法

      1.内部引用

         <!DOCTYPE 根元素 [内容] >

      2.内部DTD  引用

      <!DOCTYPE 根元素 SYSTEM ".dtd 路径">

      

      3.DTD 的元素

        <!ELEMENT  NAME(元素名称) 元素类型  >

        <!ELEMENT NAME CONTENT(元素类型) >

            3种类型:

              1).  EMPTY   不能包含子元素和文本,但可以有属性

              2).  ANY   可以包含任何  定义的  元素内容

              3). #PCDATA    可以包括任何字符数据,不能包含其它子元素

      4.<! ATTLIST  元素名称

          属性名称  属性类型 属性特点

        属性的类型:1. CDATE     任何字符。2.ID  3.IDREF /IDREFS    枚举  4.

        属性特点: 1.#REQUEST     必须有一个以上        2.#IMPLIED   有或者没有      3.DEFAULT    默认

    5. XML   DOM

      1.创建DOM对象

           $xmldoc  = new DOMDoucment();

      2.加载  xml 文件

       $xmldoc->load("xml文件名");

      3.最后保存xml文件

        $xmldoc->save("");

      4.演示如何添加一个学生信息  
             (1)取出根节点,找出根节点的 第1 个
             $root = $xmldoc->getElementByTayName("班级")->item(0);
             (2)创建学生节点
             $stu_node = $xmldoc->createElement("学生");

             (3)创建名字节点
             $stu_node_name =$xmldoc->createElement("名字");
               名字节点的值为张三
             $stu_node_name->nodeValue="张三";
                创建完了名字节点,把名字节点挂载到学生节点
              $stu_node->appendchild($stu_node_name);

             创建年龄节点
             $stu_node_age = $xmldoc->createElement("年龄");
                 $stu_node_age—>nodeValue="44";
                 把年龄节点挂载到学生节点下
                 $stu_node->appendchild($stu_node_age);

             创建介绍节点

             $stu_node_intro=$xmldoc->createElement("介绍");
              $stu_node_intro->nodeValue="iiiiiiiiiiiiiii";
              介绍节点挂载到学生节点
               $stu_node->appendchild($stu_node_age);

             把学生节点挂载到  根节点下
             $root->appendChild($stu_node);

            4 从内存取出数据  保存XML
                 1.更新文件
                 $xmldoc->save("classes.xml");  
                 2. 另保存
                 $xmldoc->save("newclasses.xml"); 

       5. 删除的例子(思路:把要删除的节点和根节点断开就可以了

        1.$xmldoc =new DOMDocument();   创建对象

        2.$xmldoc -> load("class.xml");    加载读取的xml文件   

        3.$root =$xmldoc->getElementsByTagName("班级") ->item(0);    找到第一个根节点  (班级)

        4.$student =$xmldoc ->getElementsByTayName("学生") -> item(2);    找到第二个学生  

        5. $root -> removeChild($student);     断开班级节点和学生节点

          第二种方法: $student->parentNode()->removeChild($student);  这种方法不找根节点  直接调入父节点 再删除自己

        6. $xmldoc ->save ("class.xml");     保存class.xml   

    5. XML   XPath 技术   (把所加载的  转换成 XPath  模式即可)

       1. $xmldoc = new DOMDocument();

        2.$xmldoc ->load("class.xml");

        3. $domXPath  = new DOMXPath ($xmldoc);     把$xmldoc  转换成   DOMXPath   模式      

        4. $a   =  $domXPath ->query("/b/a");        找到b下的a节点   

               5. DOMXPath  只是提供快捷找到节点。怎么操作与它无关。

    6. XML  Simplepath    技术

       1.Simplepath  可以直接 载入  xml文件     所返回的数据  是 数组,然后用 foreach  循环即可

          $simplepath  =  simple_load_file("class.php");

        2.Simplepath   也可以直接 载入   对象      所返回的数据  是 数组

          1. $xmldoc = new DOMDocument();

          2.$xmldoc ->load("class.xml");

          3. $simplepath = simplexml_import_dom($xmldoc);

        3.  Simplepath    与     XPath    结合使用

          $a = $simplepath -> xpath("/b/a");

        

        

      

      

          

        

      

     

  • 相关阅读:
    Day4
    Day 4 -E
    Day4
    Day4
    Day4
    Day4
    Day4-F-产生冠军 HDU
    Day4
    Day4-B-最短路径问题 HDU3790
    HackerRank
  • 原文地址:https://www.cnblogs.com/ningmengcao/p/3280302.html
Copyright © 2020-2023  润新知