私は現在、Webアプリケーションを開発しています。ここでは、ファイルをXMLとしてエクスポートするデスクトップソフトウェアと対話します。ColdFusionを使用したSQLのクエリデータとしてのXMLファイル
XMLファイルからデータを取り出し、そのデータをColdFusionを使用してmySQLデータベースに挿入する方法があるのかどうか不思議でしたか?
私は現在、Webアプリケーションを開発しています。ここでは、ファイルをXMLとしてエクスポートするデスクトップソフトウェアと対話します。ColdFusionを使用したSQLのクエリデータとしてのXMLファイル
XMLファイルからデータを取り出し、そのデータをColdFusionを使用してmySQLデータベースに挿入する方法があるのかどうか不思議でしたか?
もちろん、ColdFusionはXML処理のための強力なツールを提供します。
通常、XMLファイルをXML文書オブジェクトに構文解析してXmlParseとし、XPath言語でXmlSearchを検索する必要があります。データベースに挿入するために簡単に使用できるデータや他の操作を取得しました。
XML functionsが有用であることに注意してください。たとえば、解析前に検証XMLに興味があるかもしれません。
特定の状況で助けが必要な場合は、質問を延長するか、別の質問をしてください。
パース時にメモリに収まるXML文書を使用している場合は、@ Sergiiの答えが正しい方法です。一方、XMLはそのまま冗長であり、ColdFusionはDOM XMLパーサを使用しているため、メモリ不足エラーが発生しやすくなります。
このような状況では、MySQLとColdFusionでは2つの代替パスがあります。可能であれば、デスクトップアプリケーションからCSV形式でデータをエクスポートしています。次に、MySQLのLOAD DATA INFILEを使用します。これをColdFusionから呼び出してデータをインポートできます。これはおそらく最も速いパフォーマンスです。
デスクトップアプリケーションのエクスポート形式を変更できない場合は、代わりにJava StAX parserを使用することを検討してください。 See my answer from another question for an example of how to do this with ColdFusion。これはXML文書の一部をいつでもメモリに取り込むことができるという利点がありますが、DOMパーサよりもやや難しい作業です。したがって、OOMエラーは発生しません。
Javaからも同様に利用できる3番目のタイプのパーサーがあります。SAX - StAXパーサと同じ品質で、ドキュメント全体をメモリにロードしないということです。しかし、それはより困難なアプローチのIMO、したがってStAX勧告です。