3

C ++では、msxml DLLをアプリケーションにインポートしてから、アプリケーションのクラスにインターフェイスISAXContentHandlerのメソッドを実装できます。後でISAXReaderオブジェクトを作成し、eventhandlerインターフェイスの実装を指定したこのクラスのインスタンスを使用してcontentHandlerを呼び出します。
同様に、C#でも同じことを実現したいと思います。C#でこれを行う方法はありますか?つまり、C#でイベントベースのSAX解析を行う方法はありますか。XMLドキュメントを解析し、XML情報をアプリケーションに取得するのに役立つと私が考えたもう1つの方法があります。リンク「http://www.codeguru.com/csharp/csharp/cs_data/xml/article.php/c4221」をたどりました

ここではDOMが使用され、System.XML名前空間が使用されています。誰かがこの点に関して親切に私を助けてくれますか?---- C#でイベント駆動型XML解析を実現する方法は何ですか、 またはSystem.XML名前空間(DOM)を使用する必要があります。SAXイベント駆動型の方法が存在する場合plzはC#でそれを行う方法を教えてください

4

2 に答える 2

2

.NetフレームワークでSAXリーダーに最も近いのはXmlReaderクラスだと思います。イベントベースではありませんが、同様の方法でドキュメントを反復処理できます。この例を見てください:http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.read.aspx

最大のパフォーマンスが必要な場合は、XmlReaderが適していますが、より使いやすいAPIを提供する他の選択肢があります。XmlDocumentクラスを使用すると、xmlドキュメントを階層ツリーとして扱うことができ、XDocumentを使用すると、LINQを使用してxmlを解析できます。どちらが必要かは、どのモデルに慣れているか、および要件によって異なります。

于 2010-11-12T11:20:33.460 に答える
0

私はしばらく前に同様の問題に遭遇しました。すでに実装されているSystem.XMLDOMまたはC#SAXパーサー(これは実際にはアプリケーションによって異なります)のどちらが優れているかはわかりませんが、C#でSAXパーサーを実装することは確かに可能です。

実際、これはすでにCodeProjectのMartin Friedrichによって行われています:宣言型SAXフレームワークに向けて:パート1-単純なSAXからC#へのマッピング

于 2010-11-12T14:02:15.360 に答える