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');

  • 相关阅读:
    POJ 2976 Dropping tests
    【学习笔记-中国剩余定理】POJ1006 Biorhythms
    2017.10.6北京清北综合强化班DAY6
    P1607 [USACO09FEB]庙会班车Fair Shuttle
    2017.10.5北京清北综合强化班DAY5
    洛谷 P1379 八数码难题
    A. 拼音魔法
    A
    K
    A
  • 原文地址:https://www.cnblogs.com/yd09023/p/5879031.html
Copyright © 2011-2022 走看看