zoukankan      html  css  js  c++  java
  • xpath技术解析xm文件(php)

    1.结合php dom技术的学习,得出一个结论:php dom技术可以跨层取出节点,但是不能保持层次关系,使用xpath可以很好地解决问题。

    *** xpath技术的核心思想:迅速简洁的定位你需要查找的结点。主要用于查找

    test.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE 班级 SYSTEM "test.dtd">
    <!--<!DOCTYPE 班级 [
    <!Element 班级 (学生+)>
    <!Element 学生 (name,age,sex)>
    <!Element name (#PCDATA)>
    <!Element age (#PCDATA)>
    <!Element sex (#PCDATA)>
    ]>-->
    <班级>
    <学生>
    <name>
    <name/>
    <name/>
    </name>
    <age>25</age>
    <sex>男</sex>
    </学生>
    <学生>
    <name>
    <name/>
    </name>
    <age>25</age>
    <sex>男</sex>
    </学生>
    <学生>
    <name>0</name>
    <age>25</age>
    <sex>男</sex>
    </学生>
    </班级>

    xpath.php

    <html>
    <head>
    <meta http-equiv="content-type"content="text/html charset=utf-8"/>
    </head>
    <?php
    //创建DOMDocument对象
    $xmldoc=new DOMDocument();
    //加载xml
    $xmldoc->load("test.xml");
    //转成domxpath对象
    $xpath=new DOMXPath($xmldoc);
    //使用xpath技术查询你需要的节点
    //$node_list=$xpath->query("/班级/学生/name/name");
    $node_list=$xpath->query("//*");
    for($i=0;$i<$node_list->length;$i++){
        $node=$node_list->item($i);
    echo $node->tagName."<br>";
    /*
    班级
    学生
    name
    name
    name
    age
    sex
    学生
    name
    name
    age
    sex
    学生
    name
    age
    sex
    */
    }
    ?>
    </html>

    这里知识简单举了一个解析的例子,简单方法如此这般,具体的请查询文档,接下来使用php dom中的方法实现增删改会更加容易。

  • 相关阅读:
    job 定时任务的五种创建方式
    一步步实现 Redis 搜索引擎
    数据库第一二三范式
    MongoDB数组更新操作$addToSet和$each修饰符
    V8 执行 JavaScript 的过程
    servicebestpractice项目的更新
    公主连结过root检测-frida
    android使用AsyncHttpClient发送请求
    js检测dom元素的变化
    安卓手机关闭防火墙命令
  • 原文地址:https://www.cnblogs.com/aasu/p/9124904.html
Copyright © 2011-2022 走看看