この記事では主に、php が XML を解析して SQL ステートメントを生成する方法を紹介します。これには、XML 形式ファイルの読み取り、解析、SQL 文字列の結合に関する php の操作スキルが含まれます。必要な方は、以下を参照してください。
この記事の例では、PHP が XML を解析し、SQL ステートメントを生成する方法について説明します。詳細は次のとおりです。
PHP で XML を解析する方法はたくさんあります。検索するとたくさんの方法が見つかります。
今日、特定の XML からノード属性を抽出し、データベースの特定のテーブル内のフィールドを更新するという要件に遭遇しました。
アイデア:
XML を解析し、すべてのノード属性を取得します。> ノード コレクションをループし、対応する属性を取得します。> SQL 文字列を結合して保存します。それを配列に変換します –> 配列を文字列に変換し、ファイルに保存します。
Xpath は、コードの作成中に次の 2 つの問題が発生しました。 XML の履歴パス 属性が D:\xx\... の場合、ファイルをロードできません。「/」 (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 "<p class='tip_info'>总共找到:<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.'--'.$name.'--'.$inf."</p>"; $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 スクリプトを実行します。
追記: 参考までに、XML 操作用のオンライン ツールをいくつか紹介します。## オンライン
XML/JSON 相互変換ツール: http://tools.jb51.net/code/xmljson
オンライン形式変換XML/オンライン圧縮XML
:
XML
オンライン圧縮/書式設定ツール:
XML
コードのオンライン書式設定および美化ツール:
興味があるかもしれない記事:PHP による正規表現グループ化キャプチャ操作の実装例 PHP のヒント
PHP は開始原理を実現しますQQ ログインの実装プロセスと php example
PHP ファイルの自動読み込みの詳細な説明 php example
# ##################################
以上がXML を解析して SQL ステートメントを生成する PHP メソッド PHP のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。