検索
ホームページバックエンド開発C#.Net チュートリアル.NET Framework で XML データを簡単に処理する (1-1)
.NET Framework で XML データを簡単に処理する (1-1)Dec 20, 2016 pm 02:01 PM
.netframeworkXMLデータ

??.NET Framework では、XmlTextReader クラスと XmlTextWriter クラスが XML データの読み取りおよび書き込み制御を提供します。この記事では、XML ブラウザ (リーダー) のシステム構造と、それらが XMLDOM および SAX 指定子とどのように組み合わされるかについて説明します。また、ブラウザを使用して XML ドキュメントを分析および検証する方法、整形式の XML ドキュメントを作成する方法、関数を使用して Base64 および BinHex エンコーディングに基づいて大きな XML ドキュメントを読み書きする方法も示します。最後に、著者は、リーダーとライターを別のクラスにカプセル化する、ストリームベースの読み取り/書き込みアナライザーを実装する方法について説明します。

??約 3 年前、私はソフトウェア研究カンファレンスに参加しました。そのテーマは「XML がなければ、プログラミングの未来はない」でした。 XML は実際に段階的に開発されており、.NET Framework に組み込まれています。この記事では、.NET Framework で XML ドキュメントを処理するための API の役割とその内部特性について説明し、その後、一般的に使用される関数をいくつか紹介します。

??MSXML から .net XML へ

??.NET Framework が登場する前は、Windows 用の XML ドライバーを作成するために、COM ベースのクラス ライブラリである MSXML サービスを使用することに慣れていました。 .NET Framework のクラスとは異なり、MSXML クラス ライブラリのコードの一部は API よりも深く、オペレーティング システムの最下層に完全に埋め込まれています。 MSXML は確かにアプリケーションと通信できますが、外部環境と完全に統合することはできません。

??MSXML クラス ライブラリは win32 にインポートでき、CLR でも使用できますが、外部サーバー コンポーネントとしてのみ使用できます。ただし、.NET Framework に基づくアプリケーションは、XML クラスを直接使用してアプリケーションを .NET Framework の他の名前空間と統合でき、記述されたコードは簡単に参照できます。

??MSXML パーサーは、スタンドアロン コンポーネントとして、非同期分析などの高度な機能を提供します。この機能は、.NET Framework の XML クラスや .NET Framework の他のクラスには提供されていません。ただし、これに基づいて、NET Framework の XML クラスを他のクラスと簡単に統合できます。さらに効果を加えることができます。

??.NET Framework の XML クラスは、XML データの分析、クエリ、変換のための基本的な機能を提供します。 .NET Framework には、Xpath クエリと XSLT 変換をサポートするクラスのほか、XML ドキュメントの読み取り/書き込み用のクラスがあります。さらに、.NET Framework には、オブジェクトのシリアル化 (XmlSerializer および SoapFormatter クラス)、アプリケーション構成 (AppSettingsReader クラス)、データ ストレージ (DataSet クラス) など、XML を処理するための他のクラスも含まれています。この記事では、基本的な XML I/O 操作を実装するクラスについてのみ説明します。

??XML 分析モード

??XML はマークアップ言語であるため、特定の構文に従ってドキュメントに格納されている情報を分析して理解するためのツールが必要です。このツールは XML パーサーであり、マークされたテキストを読み取り、プラットフォーム固有のオブジェクトを返すコンポーネントです。

??すべての XML パーサーは、どのオペレーティング プラットフォームに属しているかに関係なく、ツリーベースのプロセッサーとイベントベースのプロセッサーの 2 つのカテゴリに分類されます。これら 2 つのカテゴリは通常、XMLDOM (Microsoft XML Document Object Model) と SAX (Simple API for XML) を使用して実装されます。 XMLDOM パーサーは、汎用のツリーベースの API であり、XML ドキュメントをメモリ内構造のツリーとして公開します。 SAX パーサーはイベントベースの API であり、XML データ ストリーム内の各要素を処理します (XML データをストリームに入れて処理します)。通常、DOM は SAX ストリームによってロードおよび実行できるため、これら 2 種類の処理は相互に排他的ではありません。

??一般に、SAX パーサーと XMLDOM パーサーは正反対であり、分析モードも大きく異なります。 XMLDOM はその機能コレクション内で明確に定義されており、拡張することはできません。大きなドキュメントを処理する場合、膨大な機能のコレクションを処理するために多くのメモリ領域が必要になります。

??SAX アナライザーは、クライアント アプリケーションを使用して、プラットフォーム固有のオブジェクトの既存のインスタンスを通じて分析イベントを処理します。 SAX パーサーはすべての処理を制御し、データをハンドラーに「プッシュ」し、ハンドラーは処理するデータを受け入れるか拒否します。このモードの利点は、必要なメモリ容量が非常に少ないことです。

??.NET Framework は XMLDOM モードを完全にサポートしていますが、SAX モードはサポートしていません。なぜ? .NET Framework は、XMLDOM パーサーと XML ブラウザーという 2 つの異なる分析モードをサポートしているためです。明らかに SAX パーサーをサポートしていませんが、それは SAX パーサーのような機能を提供しないという意味ではありません。 XML ブラウザを通じて SAX のすべての機能を簡単に実現し、より効果的に使用できます。 SAX パーサーとは異なり、.NET Framework ブラウザーはすべてクライアント アプリケーションで実行されます。このようにして、アプリケーション自体は、本当に必要なデータのみを「抽出」し、XML データ ストリームから飛び出すことができます。 SAX 分析モードは、アプリケーションにとって有用な情報と無用な情報をすべて処理します。

??ブラウザは .NET Framework ストリーミング モードに基づいて動作し、その動作方法はデータベース カーソルに似ています。興味深いことに、同様のカーソル解析パターンを実装するクラスは、.NET Framework の XMLDOM パーサーの基礎的なサポートを提供します。 2 つの抽象クラス XmlReader および XmlWriter は、XMLDOM クラス、ADO.NET ドライバー クラス、構成クラスを含む、.NET Framework のすべての XML クラスの基本クラスです。したがって、.NET Framework で XML データを処理するには 2 つの代替方法があります。 XmlReader クラスと XmlWriter クラスを使用して XML データを直接処理するか、XMLDOM モードを使用します。 .NET Framework でのドキュメントの読み方の詳細については、MSDN の 2002 年 8 月号の「Cutting Edge」コラム記事を参照してください。


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


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Microsoft NET Framework 安装问题 错误代码 0x800c0006 修复Microsoft NET Framework 安装问题 错误代码 0x800c0006 修复May 05, 2023 pm 04:01 PM

.NETFramework4是开发人员和最终用户在Windows上运行最新版本的应用程序所必需的。但是,在下载安装.NETFramework4时,许多用户抱怨安装程序在中途停止,显示以下错误消息-“ .NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006 ”。在您的设备上安装.NETFramework4时,如果您也在体验它,那么您就来对了地方

如何在 Windows 11/10 上使用 SetupDiag 识别 Windows 升级问题如何在 Windows 11/10 上使用 SetupDiag 识别 Windows 升级问题Apr 17, 2023 am 10:07 AM

每当您的Windows11或Windows10PC出现升级或更新问题时,您通常会看到一个错误代码,指示故障背后的实际原因。但是,有时,升级或更新失败可能不会显示错误代码,这时就会出现混淆。有了方便的错误代码,您就可以确切地知道问题出在哪里,因此您可以尝试修复。但是由于没有出现错误代码,因此识别问题并解决它变得极具挑战性。这会占用您大量时间来简单地找出错误背后的原因。在这种情况下,您可以尝试使用Microsoft提供的名为SetupDiag的专用工具,该工具可帮助您轻松识别错误背后的真

SCNotification 已停止工作 [修复它的 5 个步骤]SCNotification 已停止工作 [修复它的 5 个步骤]May 17, 2023 pm 09:35 PM

作为Windows用户,您很可能会在每次启动计算机时遇到SCNotification已停止工作错误。SCNotification.exe是一个微软系统通知文件,由于权限错误和点网故障等原因,每次启动PC时都会崩溃。此错误也以其问题事件名称而闻名。因此,您可能不会将其视为SCNotification已停止工作,而是将其视为错误clr20r3。在本文中,我们将探讨您需要采取的所有步骤来修复SCNotification已停止工作,以免它再次困扰您。什么是SCNotification.e

Python实现XML数据的过滤和筛选Python实现XML数据的过滤和筛选Aug 09, 2023 am 10:13 AM

Python实现XML数据的过滤和筛选XML(eXtensibleMarkupLanguage)是一种用于存储和传输数据的标记语言,它具有灵活性和可扩展性,常被用于在不同系统之间进行数据交换。在处理XML数据时,我们经常需要对其进行过滤和筛选,以提取出我们所需的信息。本文将介绍如何使用Python来实现XML数据的过滤和筛选。导入所需模块在开始之前,我们

分享几个.NET开源的AI和LLM相关项目框架分享几个.NET开源的AI和LLM相关项目框架May 06, 2024 pm 04:43 PM

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

C#的就业前景如何C#的就业前景如何Oct 19, 2023 am 11:02 AM

无论您是初学者还是有经验的专业人士,掌握C#将为您的职业发展铺平道路。

Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 将于 2022 年 4 月终止支持Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 将于 2022 年 4 月终止支持Apr 17, 2023 pm 02:25 PM

已安装Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用户如果希望Microsoft将来通过产品更新支持该框架,则必须安装较新版本的Microsoft框架。据微软称,这三个框架都将在2022年4月26日停止支持。支持日期结束后,产品将不会收到“安全修复或技术支持”。大多数家庭设备通过Windows更新保持最新。这些设备已经安装了较新版本的框架,例如.NETFramework4.8。未自动更新的设备可能

适用于 Windows 11 的KB5012643破坏了.NET Framework 3.5应用程序适用于 Windows 11 的KB5012643破坏了.NET Framework 3.5应用程序May 09, 2023 pm 01:07 PM

自我们谈论影响安装KB5012643forWindows11的用户的新安全模式错误以来已经过去了一周。这个讨厌的问题并没有出现在微软在发布当天发布的已知问题列表中,因此让所有人都感到意外。好吧,就在您认为情况不会变得更糟的时候,微软为安装此累积更新的用户投下了另一颗炸弹。Windows11Build22000.652导致更多问题因此,这家科技公司警告Windows11用户,他们在启动和使用某些.NETFramework3.5应用程序时可能会遇到问题。听起来很熟悉?不过请不要惊

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

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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