ホームページ > バックエンド開発 > C++ > C# で XmlReader を使用して XML データを効率的に読み取り、処理するにはどうすればよいですか?

C# で XmlReader を使用して XML データを効率的に読み取り、処理するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-22 07:27:10
オリジナル
446 人が閲覧しました

How Can I Efficiently Read and Process XML Data Using XmlReader in C#?

XmlReader を使用した C# での XML 解析の最適化

C# で XML ドキュメントを効率的に処理するには、異なるノードに個別のクラスを使用する構造化アプローチをお勧めします。 この例は、Account のようなプロパティを処理する専用の AccountBase クラスを使用した NameOfKin データの読み取りに焦点を当てています。 StatementsAvailable 要素に移動するという課題は、XmlReader.Skip() を使用するとエレガントに解決されます。

AccountBase クラスには次のコード スニペットが組み込まれています:

<code class="language-csharp">while (reader.Read())
{
    if (reader.NodeType == XmlNodeType.Element)
    {
        if (reader.Name == "StatementsAvailable")
        {
            reader.Skip(); // Efficiently skips the StatementsAvailable element and its children
            ProcessStatements(reader);
            break; // Moves to the next Account element
        }
    }
}</code>
ログイン後にコピー

ProcessStatements() メソッドは、Statement クラスを利用して個々のステートメントのプロパティを解析します。 このモジュール設計は、他の XML サブ要素にシームレスに拡張されます。

XmlReader は効率的なストリーミングに優れていますが、LINQ to XML は XML 操作のためのよりユーザーフレンドリーな構文を提供します。大きな XML ファイルの場合は、ハイブリッド アプローチを検討してください。XmlReader を使用してデータを管理しやすいチャンクにストリーミングし、より便利な LINQ to XML を使用してそれらのチャンクを処理します。

ネストされたループ処理によるコード構造の改善:

この洗練されたコード例は、ネストされた読み取りループを簡素化し、潜在的な「予想される要素を超えた読み取り」エラーを回避します。

<code class="language-csharp">using (XmlReader reader = XmlReader.Create(inputUrl))
{
    reader.ReadToDescendant("ApplicationPool"); // Directly navigate to the root element

    while (reader.Read())
    {
        if (reader.NodeType == XmlNodeType.Element && reader.Name == "Account")
        {
            AccountBase account = new AccountBase(reader);
            reader.ReadToFollowing("StatementsAvailable"); // Efficiently finds StatementsAvailable
            reader.Skip();
            account.ProcessStatements(reader);
        }
    }
}</code>
ログイン後にコピー

この機能強化によりプロセスが合理化され、コードがよりクリーンかつ堅牢になります。 ルート要素への直接ナビゲーションと ReadToFollowing の使用により、効率と読みやすさが向上します。

以上がC# で XmlReader を使用して XML データを効率的に読み取り、処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート