首頁 > 後端開發 > php教程 > php實作解析xml並產生sql語句的方法php技巧

php實作解析xml並產生sql語句的方法php技巧

jacklove
發布: 2023-04-01 22:24:02
原創
1427 人瀏覽過

這篇文章主要介紹了php實作解析xml並產生sql語句的方法,涉及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=&#39;content-type&#39; content=&#39;text/html; charset=utf-8&#39; />
<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 "<p class=&#39;tip_info&#39;>总共找到:<span>".$len."</span>个节点</p>";
$arr = array();
$idx = 0;
while ($idx < $len) {
  $nodeItem = $entries->item($idx);
  $id = $nodeItem->getAttribute("i");
  $name = $nodeItem->getAttribute("n");
  $inf = $nodeItem->getAttribute("inf");
//  echo "<p>".$id.&#39;--&#39;.$name.&#39;--&#39;.$inf."</p>";
  $idx++;
  array_push($arr, "update dress_item t SET t.s_name=&#39;".$name."&#39;,t.s_intro=&#39;".$inf."&#39; 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實例

#

以上是php實作解析xml並產生sql語句的方法php技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板