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

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

Dec 20, 2016 pm 02:02 PM
.netframeworkXMLデータ

?XmlReader クラス

??XML ブラウザは、XML ドキュメントに接続して必要なデータを「引き出す」ために使用されるプログラミング インターフェイスをサポートしています。ブラウザをより深く理解すると、ブラウザがデスクトップ アプリケーションがデータベースからデータを取得する方法と同じように機能することがわかります。データベース サービスは、すべてのクエリ結果セットを含むカーソル オブジェクトを返し、ターゲット データ セットの開始アドレスへの参照を返します。 XML ブラウザのクライアントは、ブラウザ インスタンスへの参照を受け取ります。この例では、基礎となるデータ ストリームを抽出し、取得したデータを XML ツリーとして表示します。ブラウザ クラスは読み取り専用の前方カーソルを提供します。ブラウザ クラスが提供するメソッドを使用して、カーソルを回転し、結果セット内の各データを走査できます。

??ブラウザから表示される XML ドキュメントは、タグ付きのテキスト ファイルではなく、シリアル化されたノードの集合体です。これは .NET Framework の特殊なカーソル モードであり、.NET Framework には他の同様の API 関数はありません。

??ブラウザと XMLDOM パーサーの間にはいくつかの違いがあります。 XML ブラウザには入力専用であり、親、子、祖先、兄弟ノードの概念はなく、読み取り専用です。 .NET Framework では、XML ドキュメントの読み取りと書き込みは 2 つのまったく異なる関数に分割され、それぞれ XmlReader クラスと XmlWriter クラスによって実行されます。 XML ドキュメントを編集するには、XMLDOM パーサーを使用するか、これら 2 つの機能を実現するクラスを自分で設計することができます。ブラウザのプログラム機能の分析を始めましょう。

??XmlReader は抽象クラスであり、その機能を拡張および拡張できます。ユーザー プログラムは通常、XmlTextReader、XmlValidatingReader、または XmlNodeReader クラスの 3 つのカテゴリに基づいています。これらすべてのクラスには、図 1 に示すプロパティと図 2 に示すメソッドがあります。一部のプロパティの値は実際には実際のブラウザ クラスに関連付けられており、異なるクラスは基本クラスとは異なる場合があることに注意してください。したがって、図 1 の各属性の説明は基本クラスに基づいています。たとえば、CanResolveEntity プロパティは XmlValidatingReader クラスでのみ true を返しますが、他のブラウザ クラスでは false に設定できます。同様に、図 2 の一部のメソッドの実際の戻り値は、クラスごとに異なる場合があります。たとえば、ノード タイプが要素ノードではない場合、属性を含むすべてのメソッドの戻り値のタイプは void になります。

??XmlTextReader クラスは、順方向専用メソッドと読み取り専用メソッドを使用して、XML データ ストリームにすばやくアクセスします。ブラウザはまず XML ドキュメントが整形式かどうかを検証し、整形式でない場合は例外をスローします。 XmlTextReader は、DTD が整形式であることをチェックしますが、DTD を適用してドキュメントを検証することはしません。 XmlTextReader は、ファイル名、URL、またはファイル ストリームから XML ドキュメントを読み込み、XML ドキュメント データを迅速に処理します。ドキュメントのデータを検証する必要がある場合は、XmlValidatingReader クラスを使用できます。

??XmlTextReader クラスのインスタンスは、ハードディスクからのファイルの読み込み、URL アドレスからの読み込み、ストリームからの読み込み、テキストからの XML ドキュメント データの読み取りなど、さまざまな方法で作成できます。 XmlTextReader(file);

??XmlTextReader クラスのすべてのパブリック構造関数では、データ ソースをストリーム、ファイル、またはその他にすることができることに注意してください。 XmlTextReader のデフォルト構造関数は保護されているため、直接適用することはできません。 .NET Framework のすべてのブラウザ クラス (SqlDataReader クラスなど) と同様、ブラウザ オブジェクトが接続されて開かれると、Read メソッドを使用してデータにアクセスできます。最初は、Read メソッドを使用してポインターを最初の要素に移動することしかできません。その後、Read メソッドまたは他のメソッド (Skip、MoveToContent、ReadInnerXml など) を使用してポインターを次のノード要素に移動できます。 XML ドキュメント全体のコンテンツを処理するには、ループを使用して Read メソッドの戻り値に基づいてドキュメント コンテンツを走査します。Read メソッドはブール値を返すため、ドキュメントの末尾ノードが読み取られると、 Read メソッドは false を返し、それ以外の場合は true を返します。



??図 3 XML ドキュメント ノード レイアウトの出力

??string GetXmlFileNodeLayout(string file)
??{
??// ターゲット XML ドキュメントを指す XmlTextReader クラスを作成します
??XmlTextReader リーダー= new XmlTextReader(file);

??// ノードのテキストをループアウトして StringWriter オブジェクト インスタンスに配置します
??StringWriter Writer = new
??string tabPrefix = ''; ??while ( Reader.Read())
??{
??// ノードタイプが要素の場合、開始タグを書き込みます
??if (reader.NodeType == XmlNodeType.Element)
??{
??//要素に従ってノードの深さにreader.Depthタブ文字を追加し、に要素名を記述します。
??tabPrefix = new string('t', Reader.Depth);
??writer.WriteLine('{0}', tabPrefix, Reader.Name); ?else
??{
??//ノード タイプが要素の場合、終了タグを書き込みます
??if (reader.NodeType == XmlNodeType.EndElement)
??{
??tabPrefix = new string('読者さん、深さ);??writer.WriteLine('{0}', tabPrefix, Reader.Name);
??}
??}
??}

??//画面に出力
??string buf =writer.ToString ( );
??writer.Close();

??// クローズドフロー
??reader.Close();

??return buf;この関数は、まず XML ドキュメントを開き、次にループを使用して XML ドキュメントのすべてのコンテンツを処理します。 Read メソッドが呼び出されるたびに、ブラウザのポインタは 1 ノード下に移動します。ほとんどの場合、Read メソッドは要素ノードを処理できますが、あるノードから次のノードに移動するときに、2 つの異なるタイプのノード間を移動することになる場合があります。ただし、Read メソッドは属性ノード間を移動できません。ブラウザの MoveToContent メソッドを使用すると、ポインタをヘッド ノードの位置から最初のコンテンツ ノードの位置にジャンプできます。 Skip メソッドを使用して、Processingstruction、DocumentType、Comment、Whitespace、および SignificantWhitespace タイプのノードにポインターを移動することもできます。

上記は、.NET Framework で XML データを簡単に処理する内容 (1-2) です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
C#.NET開発:始めるための初心者向けガイドC#.NET開発:始めるための初心者向けガイドApr 18, 2025 am 12:17 AM

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NET:2つの関係を理解し​​ますC#と.NET:2つの関係を理解し​​ますApr 17, 2025 am 12:07 AM

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プ​​ラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。

c#.netの継続的な関連性:現在の使用法を見るc#.netの継続的な関連性:現在の使用法を見るApr 16, 2025 am 12:07 AM

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

Webからデスクトップまで:C#.NETの汎用性Webからデスクトップまで:C#.NETの汎用性Apr 15, 2025 am 12:07 AM

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

c#.net and the Future:新しいテクノロジーへの適応c#.net and the Future:新しいテクノロジーへの適応Apr 14, 2025 am 12:06 AM

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netはあなたにぴったりですか?その適用性の評価c#.netはあなたにぴったりですか?その適用性の評価Apr 13, 2025 am 12:03 AM

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NET内のC#コード:プログラミングプロセスの調査.NET内のC#コード:プログラミングプロセスの調査Apr 12, 2025 am 12:02 AM

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#.NET:コアの概念とプログラミングの基礎を探るC#.NET:コアの概念とプログラミングの基礎を探るApr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境