私はそれを分割したいと思う15 GBのXMLファイルを持っています。それには約3億の行があります。それは相互に依存しているトップノードを持っていません。大きなファイルのXML分割
答えて
私はあなたがプログラムでそれを行うことに興味がない限り、あなたは手動で分割する必要があると思います。 Here's a sampleこれはそうですが、処理されるXMLファイルの最大サイズについては言及していません。手動で行う場合、最初に発生する問題は、ファイル自体を開く方法です。
非常に単純なテキストエディタ(Vimなど)をお勧めします。このような大きなファイルを扱うときは、すべての形式のシンタックスハイライトやフォールディングをオフにすると便利です。検討する価値
その他のオプション:
EditPadPro - 私は何をこのサイズにそれを試したことがありませんが、それは他のJGSoft製品のようなものだならば、それは風のように動作するはずです。構文のハイライトを無効にすることを忘れないでください。
VEdit - これは1GBのファイルでこれを使用しましたが、まるで何もないように動作します。ここで
提供されたリンクのサンプルでタグチェックが行われていますか? –
CodeProjectリンクについて聞いているなら、私は、各分割ファイルの最初と最後にルートノードを挿入すると思います。 – Cerebrus
残念ながら、750 MB後にクラッシュしました –
Xmlツールではなく、Ultraeditが役立つかもしれませんが、私は2Gファイルで使用しましたが、まったく気にしませんでしたが、自動バックアップ機能をオフにしてください。
私はそれを分割する必要があります –
私はリンクされた項目にソリューションを追加しましたhttp://stackoverflow.com/questions/4325823/how-do-i-split-a-large-xml-file/ –
UEを使用して大きなファイルを分割する方法http://www.ultraedit.com/support/tutorials_power_tips/ultraedit/split-large-files.html – MrTelly
CMarkupファイルモードを使用して自由firstobjectのXMLエディタ(フォックス)でそれを行うには、低メモリフットプリントスクリプトです。相互依存しないトップノードやタグのチェックが何を意味するのかよく分かりませんが、ルート要素の下に、オブジェクトプロパティやローを含む何百万ものトップレベル要素があり、それぞれを1つの単位としてまとめておく必要があります。出力ファイルあたり100万は、あなたがこれを行うことができます:
split_xml_15GB() { int nObjectCount = 0, nFileCount = 0; CMarkup xmlInput, xmlOutput; xmlInput.Open("15GB.xml", MDF_READFILE); xmlInput.FindElem(); // root str sRootTag = xmlInput.GetTagName(); xmlInput.IntoElem(); while (xmlInput.FindElem()) { if (nObjectCount == 0) { ++nFileCount; xmlOutput.Open("piece" + nFileCount + ".xml", MDF_WRITEFILE); xmlOutput.AddElem(sRootTag); xmlOutput.IntoElem(); } xmlOutput.AddSubDoc(xmlInput.GetSubDoc()); ++nObjectCount; if (nObjectCount == 1000000) { xmlOutput.Close(); nObjectCount = 0; } } if (nObjectCount) xmlOutput.Close(); xmlInput.Close(); return nFileCount; }
を私はここで、この程度ユーチューブ動画や記事を掲載:どのようにして
をあなたはそれを分割する必要がありますか? XmlReader.ReadSubTree
を使用してコードを書くのはかなり簡単です。現在の要素とそのすべての子要素に対して新しいxmlReaderインスタンスを返します。したがって、ルートの最初の子に移動し、ReadSubtreeを呼び出し、それらのノードをすべて書き、元のリーダーを使用してRead()を呼び出し、完了するまでループします。
XmlSplit - 大規模なXMLファイル
xml_splitを分割コマンドラインツールは、 - 小さなチャンク
スプリットbhayanakmaut (ノーソースコードと、私はこの1つは作業をすることができませんでした)によって、そのXML
エラー#16は、1GBファイルの最大ファイルサイズの制限を超えています。分割できる最大サイズは? –
QXMLEditは、専用のを持っています私はWikipediaのダンプでうまく使用しました。 〜2.7Gioファイルは〜40000000個のファイル(1ページに1つ)の束となった。サブフォルダにそれらをディスパッチすることさえできます。
私はあなたがdownvotedされた理由を知らない、これは非常に便利な、オープンソースのツールです。 – jeffmcneill
オープンソースライブラリカンマには、非常に大きなXMlファイル内のデータを検索し、それらのファイルを小さなファイルに分割するためのツールがいくつかあります。
https://github.com/acfr/comma/wiki/XML-Utilities
彼らはxmlstarletとサクソンのようなDOMツリーとメモリを埋めないようにツールはexpatのSAXパーサーを使用して構築されました。
これらは私にとってはるかに小さいファイル(〜1GB)で失敗します。 – blueberryfields
xmlstarletとsaxonも私たちのために失敗しました。そのため、xmlツールをカンマに追加しました。 –
Used this for splitting Yahoo Q&A dataset
count = 0
file_count = 1
with open('filepath') as f:
current_file = ""
for line in f:
current_file = current_file + line
if "</your tag to split>" in line:
count = count + 1
if count==50000:
current_file = current_file + "</endTag>"
with open('filepath/Split/file_' +str(file_count)+'.xml' , 'w') as split:
split.write(current_file)
file_count = file_count + 1
current_file = "<?xml version='1.0' encoding='UTF-8'?>\n<endTag>"
count = 0
current_file = current_file + "</endTag>"
with open('filepath/Split/file_' +str(file_count)+'.xml' , 'w') as split:
split.write(current_file)
- 1. XMLファイルの分割
- 2. 大規模なXMLファイルを小さな塊に分割する
- 3. Perl :: XML :: Splitで大規模なXMLファイルを分割する方法
- 4. NMAP XMLファイルの分割
- 5. 大きなCSVファイルを複数のファイルに分割する
- 6. c# - 大きなファイルを複数のファイルに分割
- 7. 大きいcsvファイルを分割する
- 8. 大きなファイルを分割するときに空きチャンク
- 9. PHPが大きなICSファイルを分割または分割する
- 10. 大きなオブジェクトをファイルに分割する前に分割する
- 11. 巨大なgzファイルを分割する
- 12. タイププロバイダと大きなXMLファイル
- 13. スカラケーキパターン:大きなコンポーネントを別々のファイルに分割する
- 14. 大きなscmファイルを個々のコマンドに分割する
- 15. UNIXのコマンドラインで大きなcsvファイルを分割する方法
- 16. 大きなファイルをPHPで多数の小さなファイルに分割する
- 17. 大きなjavascriptファイルを複数の小さなファイルに分割する
- 18. 大きなcsvファイルをPythonで分割する
- 19. VB.NETで大きなファイルを分割する
- 20. 分割大きなファイル毎回</byebye>は
- 21. Spring JmsTemplateは大きなファイルを分割します
- 22. 非常に大きなjavascriptファイルを分割します
- 23. 大きなテキストファイルを短いファイルに分割する
- 24. Rails 3.1プロダクションアセット:大きなファイルはピースに分割されます
- 25. 大きなCSSファイルを分割するかどうか
- 26. メモリよりも大きなファイルを分割するには?
- 27. 大きなtypecript index.d.tsファイルを分割する方法
- 28. 分割大きな文字列を
- 29. " "のxmlクエリから大きなサイズの文字列をJavaで分割する
- 30. VBAを使用して大きなXMLファイルを小さなものに分割する方法
あなたはそれについてvtd-xmlを見ましたか? –