ホームページ バックエンド開発 C#.Net チュートリアル .NET FrameworkでXMLデータを簡単に処理する(5-1)

.NET FrameworkでXMLデータを簡単に処理する(5-1)

Dec 20, 2016 pm 02:18 PM
.net XMLデータ

??XmlReadWriter クラスを設計します

??前述したように、XML リーダーとライターは独立して動作します。リーダーは読み取りのみ、ライターは書き込みのみを行います。アプリケーションが長い XML ドキュメントを処理する必要があり、そのドキュメントに不安定なデータが含まれているとします。 Reader は、ドキュメントの内容を読むための優れた方法を提供します。一方、Writer は XML ドキュメントのフラグメントを作成するのに非常に便利なツールですが、読み取りと書き込みの両方を可能にしたい場合は、XMLDOM を使用する必要があります。実際の XML ドキュメントが非常に大きい場合は、別のタイトルが表示されます。この XML ドキュメントをすべてメモリにロードし、後で読み書きする必要がありますか?まず、大規模な XML DOM を解析するためのハイブリッド ストリーム アナライザーを構築する方法を見てみましょう。

??通常の読み取り専用操作と同様に、通常の XML リーダーを使用してノードに順次アクセスします。違いは、XML ライターを使用して、読み取り中に属性値とノードの内容を変更できることです。リーダーを使用してソース ファイル内の各ノードを読み取り、バックグラウンド ライターがノードのコピーを作成します。このコピーでは、いくつかの新しいノードを追加したり、他のノードを無視または編集したり、属性値を編集したりできます。変更が完了したら、古いドキュメントを新しいドキュメントに置き換えます。

??簡単で効果的な方法は、ノード オブジェクトを読み取り専用ストリームから書き込みストリームにコピーすることです。このメソッドでは、XmlTextWriter クラスの WriteAttributes メソッドと WriteNode メソッドの 2 つのメソッドを使用できます。 WriteAttributes メソッドは、現在のリーダーで選択されているノードのすべての有効な属性を読み取り、その属性を別の文字列として現在の出力ストリームにコピーします。同様に、WriteNode メソッドは同様のメソッドを使用して、属性ノードを除く他のタイプのノードを処理します。図 10 に示すコード スニペットは、上記の 2 つのメソッドを使用してソース XML ドキュメントのコピーを作成し、特定のノードを選択的に変更する方法を示しています。 XML ツリーはツリーのルートからアクセスされますが、属性ノード タイプ以外のタイプのノードのみが出力されます。 Reader と Writer を新しいクラスに統合し、ストリームの読み取りと書き込み、プロパティとノードへのアクセスができるように新しいインターフェイスを設計できます。

図 10 WriteNode メソッドの使用

XmlTextReader = new XmlTextReader(inputFile);

XmlTextWriter Writer = new XmlTextWriter(outputFile); //リーダーとライターを構成する

writer.Formatting = Formatting.Indent編;

reader.MoveToContent();



// ルートノードを書き込みます

writer.WriteStartElement(reader.LocalName); // 他のすべてのノードを読み取り、出力します

int i=0; (reader.Read())

{

if (i % 2)

writer.WriteNode(reader, false)

}



// ルートを閉じる

writer.WriteEndElement ();



// リーダーとライターを閉じる

writer.Close();

?? XmlTextReadWriter クラスが XmlReader クラスまたは XmlWriter クラスから永続化されていません。代わりに、他に 2 つのクラスがあり、1 つは読み取り専用ストリーム (ストリーム) に基づくコントロール クラス、もう 1 つは書き込み専用ストリームに基づくコントロール クラスです。 XmlTextReadWriter クラスのメソッドは、Reader オブジェクトを使用してデータを読み取り、Writer オブジェクトに書き込みます。さまざまなニーズに適応するために、内部の Reader オブジェクトと Writer オブジェクトは、読み取り専用の Reader プロパティと Writer プロパティを通じて公開されます。図 11 は、このクラスのいくつかのメソッドを示しています。

図 11 XmlTextReadWriter クラスのメソッド

メソッド
説明

AddAttributeChange
WriteAttributes の連続呼び出し中に処理されるノード属性の変更を実行するために必要なすべての情報をキャッシュします。
内部リーダーの Read メソッドの単純なラッパー。

WriteAttributes
ライターの WriteAttributes メソッドの特殊バージョン。AddAttributeChange メソッドを通じてキャッシュされたすべての変更を考慮して、指定されたノードのすべての属性を書き込みます。

WriteStartDocument
内部ライターがドキュメントを出力し、デフォルトのコメント テキストと標準 XML プロローグを追加するように準備します。


??この新しいクラスには Read メソッドがあります。これは、Reader の読み取りメソッドを単純にカプセル化したものです。さらに、WriterStartDocument メソッドと WriteEndDocument メソッドも提供します。これらは、内部の Reader オブジェクトと Writer オブジェクトをそれぞれ初期化/解放 (ファイナライズ) し、すべての I/O 操作も処理します。ループ内のノードを読み取りながら、ノードを直接修正できます。パフォーマンス上の理由から、最初に AddAttributeChange メソッドを使用して属性を変更する必要があります。ノードの属性に対するすべての変更は一時テーブルに保存され、最後に WriteAttribute メソッドを呼び出すことによって変更が送信され、一時テーブルがクリアされます。

上記は、.NET Framework で XML データを簡単に処理する (5-1) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python は XML データのフィルタリングとフィルタリングを実装します。 Python は XML データのフィルタリングとフィルタリングを実装します。 Aug 09, 2023 am 10:13 AM

Python は XML データのフィルタリングとフィルタリングを実装します。XML (eXtensibleMarkupLanguage) はデータの保存と送信に使用されるマークアップ言語です。柔軟でスケーラブルであり、異なるシステム間のデータ交換によく使用されます。 XML データを処理する場合、多くの場合、必要な情報を抽出するためにデータをフィルター処理する必要があります。この記事ではPythonを使ってXMLデータをフィルタリングする方法を紹介します。必要なモジュールをインポートします。 開始する前に、

C# の雇用の見通しはどのようなものですか? C# の雇用の見通しはどのようなものですか? Oct 19, 2023 am 11:02 AM

初心者でも経験豊富なプロフェッショナルでも、C# をマスターすることでキャリアへの道が開かれます。

いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する May 06, 2024 pm 04:43 PM

現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。

完全ガイド: PHP 拡張機能 SimpleXML を使用して XML データを読み取り、処理する方法 完全ガイド: PHP 拡張機能 SimpleXML を使用して XML データを読み取り、処理する方法 Jul 28, 2023 pm 02:46 PM

完全ガイド: PHP 拡張機能 SimpleXML を使用して XML データを読み取り、処理する方法 はじめに: 最新の Web 開発では、XML データの処理と操作は非常に一般的なタスクです。 PHP は、強力なサーバー側スクリプト言語として、XML データを処理および操作するためのさまざまな拡張機能と関数を提供します。その中でも、SimpleXML 拡張機能は、XML データの読み取りと処理のプロセスを簡素化する特に便利なツールです。この記事では、PHP 拡張機能の使用方法に関する完全なガイドを提供します。

開発者向けの .NET パフォーマンス最適化テクノロジ 開発者向けの .NET パフォーマンス最適化テクノロジ Sep 12, 2023 am 10:43 AM

.NET 開発者は、高品質のソフトウェアを提供するために機能とパフォーマンスを最適化することの重要性を認識する必要があります。提供されたリソースを巧みに活用し、Web サイトの読み込み時間を短縮することで、ユーザーに快適なエクスペリエンスを提供するだけでなく、インフラストラクチャのコストも削減できます。

Java フレームワークと .NET フレームワークのパフォーマンスの違い Java フレームワークと .NET フレームワークのパフォーマンスの違い Jun 03, 2024 am 09:19 AM

同時実行性の高いリクエスト処理の点では、.NETASP.NETCoreWebAPI は JavaSpringMVC よりも優れたパフォーマンスを発揮します。その理由としては、AOT の早期コンパイルにより起動時間が短縮され、開発者がオブジェクト メモリの割り当てと解放を行うため、より洗練されたメモリ管理が行われます。

c#.netインタビューの質問と回答:専門知識を高める c#.netインタビューの質問と回答:専門知識を高める Apr 07, 2025 am 12:01 AM

C#.NETインタビューの質問と回答には、基本的な知識、コアの概念、高度な使用が含まれます。 1)基本知識:C#は、Microsoftが開発したオブジェクト指向言語であり、主に.NETフレームワークで使用されています。 2)コアの概念:委任とイベントは動的な結合方法を可能にし、LINQは強力なクエリ関数を提供します。 3)高度な使用:非同期プログラミングは応答性を向上させ、式ツリーは動的コード構造に使用されます。

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース 高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース Apr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

See all articles