• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php实现解析xml并生成sql语句的方法

    本文实例讲述了php实现解析xml并生成sql语句的方法。分享给大家供大家参考,具体如下:

    php解析xml有很多种办法,文档中有,搜索一下就一大把的。

    今天遇到一个需求:将某个xml中的节点属性提取出来,然后更新数据库某一表中的字段。

    思路:

    解析XML,获取所有的节点属性 –> 循环节点集合,获取对应的属性 –> 拼接sql字符串存入一数组 –> 将数组转为字符串保存于某一文件中

    这里使用了xpath,在写代码的过程中遇到两个问题:

    1、xml的史路径属性为D:\xx\…时load不了文件,改为”/”(linux下的分隔符)就可以了

    2、获取一个节点的属性,使用::attributes,编辑器就不停的红色提示,找到半天文档,最后用->getAttribute()就行了(猜的,因为太奇怪了,它支持->previousSibling和->nodeValue),按照,文档上的DOMElement::getAttribute直接就报错了..

    下面是示例代码:

    title>xml 转换为 sql/title>
    meta http-equiv='content-type' content='text/html; charset=utf-8' />
    style type="text/css">
      .tip_info {margin-bottom:10px;}
      .tip_info span {color:#f00;}
    /style>
    ?php
    $xml = "D:/res/dressConfig.xml";
    $doc = new DOMDocument();
    $doc->load($xml);
    $xpath = new DOMXPath($doc);
    $query = "//i";
    $entries = $xpath->query($query);
    $len = $entries->length;
    echo "div class='tip_info'>总共找到:span>".$len."/span>个节点/div>";
    $arr = array();
    $idx = 0;
    while ($idx  $len) {
      $nodeItem = $entries->item($idx);
      $id = $nodeItem->getAttribute("i");
      $name = $nodeItem->getAttribute("n");
      $inf = $nodeItem->getAttribute("inf");
    //  echo "div>".$id.'--'.$name.'--'.$inf."/div>";
      $idx++;
      array_push($arr, "update dress_item t SET t.s_name='".$name."',t.s_intro='".$inf."' WHERE t.n_doid=".$id.";");
    }
    $dir = "d:/sql/";
    if (!is_dir($dir)) {
      mkdir($dir);
    }
    file_put_contents("d:/sql/dress_item.sql", implode("\n\r", $arr));
    echo "生成完毕!";
    ?>
    
    

    因为数据是从数据库表中生成出来的,所以找到的节点数即为表中的记录总数。生成后可以大概看一下内容是否正确,然后再执行该sql脚本便达到目的了。

    PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

    在线XML/JSON互相转换工具:
    http://tools.jb51.net/code/xmljson

    在线格式化XML/在线压缩XML
    http://tools.jb51.net/code/xmlformat

    XML在线压缩/格式化工具:
    http://tools.jb51.net/code/xml_format_compress

    XML代码在线格式化美化工具:
    http://tools.jb51.net/code/xmlcodeformat

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • php中实现xml与mysql数据相互转换的方法
    • php与XML、XSLT、Mysql的结合运用实现代码
    • php 备份数据库代码(生成word,excel,json,xml,sql)
    • PHP XML备份Mysql数据库
    • 用PHP实现XML备份Mysql数据库
    • 一个用于MySQL的PHP XML类
    • PHP解析xml格式数据工具类示例
    • PHP封装的XML简单操作类完整实例
    • PHP基于DOMDocument解析和生成xml的方法分析
    • PHP处理数组和XML之间的互相转换
    • php生成xml简单实例代码
    • PHP输出XML到页面的3种方法详解
    上一篇:PHP删除数组中指定下标的元素方法
    下一篇:PHP实现正则表达式分组捕获操作示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    php实现解析xml并生成sql语句的方法 php,实现,解析,xml,并,生成,