php(最新バージョン)で非常に大きいxmlファイルから要素(およびその子)を削除する方法を理解しようとしています。
domとsimpleXmlを使用できることはわかっていますが、その場合はドキュメントをメモリにロードする必要があります。
XMLライター/リーダー/パーサー関数とグーグルを見ていますが、この件については何もないようです(すべての回答でdomまたはsimpleXmlの使用をお勧めします)。それは正しくありません-私は何かが欠けていますか?
私が見つけた最も近いものはこれです(C#):
XmlReaderを使用して、xmlを順番に読み取ることができます(ReadOuterXmlは、ノード全体を一度に読み取る場合に役立つ場合があります)。次に、XmlWriterを使用して、保持するすべてのノードを書き出します。(大きなXMLファイルからのノードの削除)
本当に?それはアプローチですか?巨大なファイル全体をコピーする必要がありますか?
本当に他の方法はありませんか?
1つのapprocah
提案されたように、
phps XMLリーダーまたはパーサーを使用してデータを読み取り、場合によってはバッファーに入れて、新しいファイルに書き込み/ダンプ+追加し直すことができます。
しかし、このアプローチは本当に実用的ですか?
基本的に提案された方法を使用して、巨大なxmlファイルを小さな部分に分割した経験があり、プロセスが完了するまでに非常に長い時間がかかりました。
私のデータセットは現在、これがどのように機能するかについてのアイデアを私に与えるのに十分な大きさではありません。結果は同じになるとしか思いませんでした(非常に遅いプロセス)。
これを実際に適用した経験のある人はいますか?