0

これを行う必要があったので、コードからファイルに XMLDocument を書き込む古い学校の方法を調べていました。

私のアプリケーションでは、新しい要素と値を含む XML ドキュメントに大量に書き込み、定期的にディスクに保存し、ファイルから読み取り、データに応じて処理を行っています。

File.Exists(...) _xmldoc.LoadFile(..) などのメソッドを使用しています...

おそらく今では、これに関してより良い方法があるのではないかと思っています

  • XML の解析
  • 保存するためのフォーマットの確認
  • 保存されるデータがテキストとして扱われるのではなく、XML として扱われます。

多分私がやっていることは問題ありませんが、しばらくの間、他の方法があるかどうか疑問に思いました:)

ありがとう

4

3 に答える 3

2

.NET 3.5 で導入された非常に優れたXML APIであるLINQ to XMLがあります。s とs ( / )を作成するいくつかの優れた方法を除けば、既存の API はあまり変わっていないと思います。XMLDocumentXmlReaderXmlWriterXmlReader.CreateXmlWriter.Create

ただし、2 番目と 3 番目の箇条書きの意味がよくわかりません。ぎこちないコードで正確に何をしているのですか?

于 2009-07-22T09:19:48.273 に答える
1

私は XmlDocument の使用機能のおかげで大ファンでしたが、最近、そのクラスで大きなメモリの問題が発生したため、XmlReader と XmlWriter を使い始めました。

XmlReader は、Xml ファイルを順番に読み取るため、Xml ファイルが複雑な場合に使用するのが少し難しい場合があります。その場合、XmlReader のメソッド ReadSubTree は非常に便利です。このメソッドは現在のノードの下の xml ツリーのみを返すため、新しい xmlreader を関数に送信してサブノードのコンテンツを解析し、それが完了したら、次の処理に進みます。ノード。

XmlReader の例:

string xmlcontent = "<BigXml/>";

using(StringReader strContent = new StringReader(xmlcontent))
{
    using (XmlReader reader = XmlReader.Create(strContent))
    {
        while (reader.Read())
        {
            if (reader.Name == "SomeName" && reader.NodeType == XmlNodeType.Element)
            {
                //Send the XmlReader created by ReadSubTree to a function to read it.
                ReadSubContentOfSomeName(reader.ReadSubtree());
            }
        }
    }
}

XmlWriter の例:

StringBuilder builder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(builder))
{
    writer.WriteStartDocument();

    writer.WriteStartElement("BigXml");
    writer.WriteAttributeString("someAttribute", "42");
    writer.WriteString("Some Inner Text");

    //Write nodes under BigXml
    writer.WriteStartElement("SomeName");
    writer.WriteEndElement();

    writer.WriteEndElement();

    writer.WriteEndDocument();
}
于 2009-07-22T11:37:00.007 に答える
1

XmlDocument の Save メソッドを見たことがありますか? XmlDocument にあるものはすべて、有効な形式のファイルとして保存されます。

プログラムが XmlDocument クラスを使用できる場合、XmlDocument クラスはファイルを保存できます。保存する前に検証について心配する必要はなく、任意のファイル拡張子を付けることができます。3 番目のポイントについては... XML ファイルは実際には単なるテキスト ファイルです。OSがそれをどのように見ているかは問題ではありません。

于 2009-07-22T10:47:21.277 に答える