2009-11-02 10 views
14

XmlDocumentまたはXmlWriterを使用してxmlファイルを作成できます。XmlDocumentとXmlWriter

ある方法を別の方法で使用するメリットはありますか?

答えて

17

XmlWriterXmlDocumentは、メモリ内のオブジェクトモデルとしてXMLデータを構築します。

ドキュメントのサイズに比例したメモリを使用せずにXMLドキュメントを作成する必要がある場合は、XmlWriterを使用します。既存のXML文書をオブジェクトモデルに解析する場合、任意の場所に要素を作成する場合、既存の文書を更新する場合、またはXPathを使用して文書を検索する場合に、メモリ内でXMLを処理する必要がある場合は、XmlDocumentを使用します。 (実際には、後者の場合のために、あなたはXPathDocumentを使用したいが、それは書き込み専用ですので、いずれにしても、あなたはは、XmlWriterを使用することができませんでした。)もちろん

それは使用してストリームにXMLデータを書き込むことが可能ですXmlDocument。実際にXmlWriterを使用しているのは、XmlDocumentが内部で使用しているためです。

+0

99%の場合、 'XmlWriter'は' MemoryStream'のバッキングで使用されるため、メモリサイズの違いはごくわずかです。しかし、重要なことは、 'XmlDocument'がスキーマに対して妥当性を確認できることです。 – ajeh

3

これは、ご使用のシナリオによって異なります。 XmlDocumentはドキュメント全体をメモリにロードしますが、XmlWriterはストリームを使用するため、大規模なXMLドキュメントを扱う際には適しています。一方、XmlDocumentは使いやすいかもしれません。あなたは.NET Frameworkの3.5をサポートしている場合

0

ファイルが大きい(500メガバイト以上)が、したXmlWriterを使用して容易であるとき、それは遅いので、常にXmlDocument店は、メモリ内のデータを穴が直接

3

をストリームに書き込み、私はあなたに助言します代わりにXDocumentとXElementを使用します。 XMLデータのストリームベースの書き込みは、はるかにシンプルでフレンドリーなAPIです。