ホームページ >バックエンド開発 >PHPチュートリアル >XML を解析して SQL ステートメントを生成する PHP メソッド PHP のヒント

XML を解析して SQL ステートメントを生成する PHP メソッド PHP のヒント

jacklove
jackloveオリジナル
2018-06-28 17:31:361432ブラウズ

この記事では主に、php が XML を解析して SQL ステートメントを生成する方法を紹介します。これには、XML 形式ファイルの読み取り、解析、SQL 文字列の結合に関する php の操作スキルが含まれます。必要な方は、以下を参照してください。

この記事の例では、PHP が XML を解析し、S​​QL ステートメントを生成する方法について説明します。詳細は次のとおりです。

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=&#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 スクリプトを実行します。

追記: 参考までに、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 example

PHP ファイルの自動読み込みの詳細な説明 php example

# ##################################

以上がXML を解析して SQL ステートメントを生成する PHP メソッド PHP のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。