这里使用了xpath,在写代码的过程中遇到两个问题:
1、xml的史路径属性为D:\xx\…时load不了文件,改为”/”(linux下的分隔符)就可以了
2、获取一个节点的属性,使用::attributes,编辑器就不停的红色提示,找到半天文档,最后用->getAttribute()就行了(猜的,因为太奇怪了,它支持->previousSibling和->nodeValue),按照,文档上的DOMElement::getAttribute直接就报错了..
下面是示例代码:
xml 转换为 sql .tip_info {margin-bottom:10px;} .tip_info span {color:#f00;}load($xml);$xpath = new DOMXPath($doc);$query = "//i";$entries = $xpath->query($query);$len = $entries->length;echo "总共找到:".$len."个节点
";$arr = array();$idx = 0;while ($idx item($idx); $id = $nodeItem->getAttribute("i"); $name = $nodeItem->getAttribute("n"); $inf = $nodeItem->getAttribute("inf");// echo "".$id.'--'.$name.'--'.$inf."
"; $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技巧
PHP实现QQ登录的开原理和实现过程php实例
详解PHP文件的自动加载php实例
原生javascript实现解析XML文档与字符串【javascript】 | 原生javascript实现解析XML文档与字符串【javascript】 ...