zoukankan      html  css  js  c++  java
  • XML XPATH simpleXML

    XPath

    通过DOM结构定位节点,在数据量很大的情况下速度下降的很厉害。解决方法是XPath。Xpath的作用:用于快速定位节点

    position()是节点的位置,节点的位置是从1开始

    simpleXML

    PHP5以上提供了一个simpleXML对象来操作XML。把XML的节点转换成对象和数组去操作。

    思路:先讲xml字符串转化成对象及数组

    /****************************************************************/

    <?php
    $xml= file_get_contents('books.xml');//获取XML的字符串
    $simple=new SimpleXMLElement($xml);//把xml字符串转换成数组 $simple代表根节点
    //1、查询
    //echo '<pre>';
    //var_dump($simple);

    echo "<table border='1'>";
    foreach ($simple->book as $book){
    $attr=$book->attributes();//获取节点的属性
    echo "<tr>";
    echo "<td>".$book->name."</td>";
    echo "<td>".$book->price."</td>";
    echo "<td>".$attr['type']."</td>";
    echo "</tr>";
    }
    echo "</table>";
    //添加
    /*
    $book=$simple->addChild('book');//在根节点下加book节点
    $book->addChild('name', 'C++');
    $book->addChild('price','11');
    $book->addAttribute('type', '动态语言');
    $simple->saveXML('books.xml');//保存xml文件
    *
    */
    //更新
    /*
    foreach($simple->book as $book){
    $book->name.='-北京出版社';
    }
    $simple->saveXML('books.xml');
    *
    */
    //删除
    for($i=count($simple->book)-1;$i>=0;$i--){//从最后往前删除对应的元素,
    //如果从前往后删除元素,则$i不停变换是的对应的元素并不会被删除
    $currentbook=$simple->book[$i]; //当前的图书

    $attr=$currentbook->attributes();
    if($attr['type']=='动态语言')
    {
    unset($simple->book[$i]);
    }
    }
    $simple->saveXML('books.xml');

  • 相关阅读:
    LeetCode 121. Best Time to Buy and Sell Stock
    LeetCode 221. Maximal Square
    LeetCode 152. Maximum Product Subarray
    LeetCode 53. Maximum Subarray
    LeetCode 91. Decode Ways
    LeetCode 64. Minimum Path Sum
    LeetCode 264. Ugly Number II
    LeetCode 263. Ugly Number
    LeetCode 50. Pow(x, n)
    LeetCode 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/yd09023/p/5879031.html
Copyright © 2011-2022 走看看