zoukankan      html  css  js  c++  java
  • php xml 摘抄

    <?php
    $xml =<<<EOT
    <?xml version="1.0"?>
    <root>
    <section name="Section1">
      <category id="Category1" name="google">
       <arti name="article1">
       <p>any html code here</p>
       <b>my name is so so</b>
        </arti>
       <arti name="article2">value2</arti>
       <arti name="article3">value3</arti>
       <arti name="article4">value4</arti>
      </category>
        <category id="Category2" name="yahoo">
       <arti name="articleSection2">Test value</arti>
      </category>
    </section>
    <section name="Section2">
      <category id="category1_of_section2" name="msn">
       <arti name="article2">value1</arti>
       <arti name="article3">value2</arti>
      </category>
        <category id="Category2_of_section2" name="webcare">
        <arti name="param3">value4</arti>
       </category>
    </section>
    </root>
    EOT;
    
    $dom = new DomDocument;
    $dom->preserveWhiteSpace = FALSE;
    $dom->loadXML($xml);
    $params = $dom->getElementsByTagName('section'); // Find Sections 
    $k=0;
    foreach ($params as $param) //go to each section 1 by 1 
    {
             echo "Section Attribute :-> ".$params->item($k)->getAttribute('name')."<br>";   //get section attribute            
             $params2 = $params->item($k)->getElementsByTagName('category'); //digg categories with in Section
          $i=0; // values is used to iterate categories  
            foreach ($params2 as $p) {
               echo "  - Category Attribute Name :-> ".$params2->item($i)->getAttribute('name')."<br>"; //get Category attributes
                $params3 = $params2->item($i)->getElementsByTagName('arti'); //dig Arti into Categories
                     $j=0;//values used to interate Arti
                         foreach ($params3 as $p2)
                       {
                        echo "   - Article Attribute Name : ".$params3->item($j)->getAttribute('name').""; //get arti atributes
    echo "   Value : ".$params3->item($j)->nodeValue."<br>"; //get Node value ;
                                  $j++;   
                       }              
             $i++;
          }
    $k++;    
              
    }
    ?>
    
    output :
     Section Attribute :-> Section1
      - Category Attribute Name :-> google
                - Article Attribute Name : article1   Value : any html code heremy name is so so
                - Article Attribute Name : article2   Value : value2
                - Article Attribute Name : article3   Value : value3
                - Article Attribute Name : article4   Value : value4
      - Category Attribute Name :-> yahoo
                - Article Attribute Name : articleSection2   Value : Test value
    Section Attribute :-> Section2
      - Category Attribute Name :-> msn
                - Article Attribute Name : article2   Value : value1
                - Article Attribute Name : article3   Value : value2
      - Category Attribute Name :-> webcare
                - Article Attribute Name : param3   Value : value4
    


    摘抄:php.net

    知识共享许可协议
    作品Tim Zhang创作,采用知识共享署名 3.0 中国大陆许可协议进行许可。 。
  • 相关阅读:
    [leetcode-671-Second Minimum Node In a Binary Tree]
    [leetcode-667-Beautiful Arrangement II]
    棋盘从左上到右下最小初始值
    [leetcode-666-Path Sum IV]
    [leetcode-665-Non-decreasing Array]
    [leetcode-215-Kth Largest Element in an Array]
    LINQ简记(3):子句
    技巧篇:如何重写基类的事件
    技巧篇:结合反射技术实现多算法动态加密
    龙年新作:水印文字添加工具源码摘要
  • 原文地址:https://www.cnblogs.com/ccdc/p/2239056.html
Copyright © 2011-2022 走看看