0

XML 構造を作成しようとしています (ファイルの読み取り/書き込みではなく、論理部分のみ)。私はそれをどのように進め、何を使用するかについて本当に混乱しています。インターネットで調べたところ、2 つの候補クラスが見つかりました: XmlDocumentand XDocument(ノード、要素、属性などへの対応する参照を含む)。

1 つは非推奨にする必要がありますが、かなり最近の投稿 (2010 年と 2011 年も) を確認しましたが、両方のバリアントを使用したコードをまだ提案しています。また、Google のチェックでXDocumentは、ヒット数のほんの一部しか得られませんXmlDocument

その部分を整理すると、非常に単純なXML 構造を構成する方法について、さまざまな例を見てきました。アプローチはそれを提案する人の能力レベルに依存すると思うので、私は率直に尋ねています-どのクラスとどの構文を使用するのですか?

4

3 に答える 3

0

XML ドキュメントを作成するには、ドキュメント全体をメモリ内に保持するクラスを使用する方法と、一方向の XML ライターを使用する方法の 2 つがあります。

  • XDocumentは、メモリに収まる XML ドキュメントを構築するための推奨される方法です。非常に大きな XML ファイルには適していません。XmlDocumentまだ非推奨としてマークされていませんが、フレームワークの将来のバージョンで廃止される可能性があると思います。

  • 一方、 XmlWriterは、メモリに収まらない大きな XML ドキュメントの作成に適しています。これとは対照的に、XDocumentこれは一方向のライターであり、ノードが書き込まれると、戻って変更することはできなくなります。

XML ドキュメントを構築する 3 番目の方法もあります。これは最初のカテゴリに分類され、.NET 型の XML シリアル化によるものです。DataContractSerializerXmlSerializerなど、それを実現できるクラスがいくつかあります。

于 2012-09-17T10:29:45.030 に答える
0

性能差あり!

読み取りパフォーマンス: LINQ to XML と XmlDocument と XmlReader

Linq to XML は XmlDocument よりも高速です

于 2012-09-17T10:30:04.757 に答える
0

私は数週間前にまったく同じ問題を抱えていました。どうやら、数字を信用することはできません -XmlDocumentカウント ヒットの約 20 倍になりますXDocument 、前者は非推奨であり、後者が使用されます。

この現象の説明としては、非推奨クラスを使用して多くのコードが作成されたと思います (当時の基準では、それらを使用することは非常に便利でした)。数年後、人々は「ブロックに新しい子供」がいることに気付かずに「機能しているもの」を使用しています.

次に、論理的な XML 構造を作成する方法の簡単な例を示します。

XDocument xml = new XDocument(
  new XElement("main",
    new XElement("first", "---"),
    new XElement("second",
      new XElement("first sub", "---"),
      new XElement("second sub", "---"))
));

この件に関する詳細は、ここで読むことができます。

于 2012-09-17T10:33:40.697 に答える