今回は、phpがxmlを解析してsqlステートメントを生成する手順について詳しく説明します。phpがxmlを解析してsqlステートメントを生成するための注意事項は何ですか。実際のケースを見てみましょう。
PHP で XML を解析する方法はたくさんあり、ドキュメントにたくさんありますので、検索してください。 今日、特定の XML からノード属性を抽出し、データベース内の特定のテーブルのフィールドを更新するという要件に遭遇しました。アイデア:
XML を解析し、すべてのノード属性を取得します –> ノード コレクションをループし、対応する属性を取得します –> SQL 文字列を結合し、配列に格納します –>文字列を指定してファイルに保存します。ここでは xpath が使用されています。コードを記述する過程で 2 つの問題が発生しました: 1. XML の履歴パス属性が D:xx... の場合、ファイルを保存できません。ロードされ、区切り文字「/」に変更されます) 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 "生成完毕!"; ?>
phpとjsでローカルexeアプリケーションを開くときにパラメータを渡す手順の詳細な説明
PHPクラスリフレクションを使用して依存性注入を実装する手順の詳細な説明
以上がPHP が XML を解析して SQL ステートメントを生成する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。