Vb.net-xml-processing
VB.Net-XML処理
拡張マークアップ言語(XML)は、HTMLやSGMLによく似たマークアップ言語です。 これは、World Wide Web Consortiumによって推奨されており、オープンスタンダードとして利用できます。
Sr.No. | Class & Description |
---|---|
1 |
XmlAttribute 属性を表します。 属性の有効なデフォルト値は、ドキュメントタイプ定義(DTD)またはスキーマで定義されます。 |
2 |
XmlCDataSection CDATAセクションを表します。 |
3 |
XmlCharacterData いくつかのクラスで使用されるテキスト操作メソッドを提供します。 |
4 |
XmlComment XMLコメントのコンテンツを表します。 |
5 |
XmlConvert XML名をエンコードおよびデコードし、共通言語ランタイムタイプとXMLスキーマ定義言語(XSD)タイプの間で変換するためのメソッドを提供します。 データ型を変換する場合、返される値はロケールに依存しません。 |
6 |
XmlDeclaration XML宣言ノード<?xml version = '1.0' …?>を表します。 |
7 |
XmlDictionary Windows Communication Foundation(WCF)のXMLリーダー/ライターの実装を最適化するために使用される辞書を実装します。 |
8 |
XmlDictionaryReader Windows Communication Foundation(WCF)がXmlReaderから派生して、シリアル化と逆シリアル化を行う抽象クラス。 |
9 |
XmlDictionaryWriter Windows Communication Foundation(WCF)がXmlWriterから派生して、シリアル化と逆シリアル化を行う抽象クラスを表します。 |
10 |
XmlDocument XMLドキュメントを表します。 |
11 |
XmlDocumentFragment ツリーの挿入操作に役立つ軽量オブジェクトを表します。 |
12 |
XmlDocumentType 文書型宣言を表します。 |
13 |
XmlElement 要素を表します。 |
14 |
XmlEntity <!ENTITY …などのエンティティ宣言を表します >. |
15 |
XmlEntityReference エンティティ参照ノードを表します。 |
16 |
XmlException 最後の例外に関する詳細情報を返します。 |
17 |
XmlImplementation XmlDocumentオブジェクトのセットのコンテキストを定義します。 |
18 |
XmlLinkedNode このノードの直前または直後のノードを取得します。 |
19 |
XmlNode XMLドキュメント内の単一ノードを表します。 |
20 |
XmlNodeList ノードの順序付けられたコレクションを表します。 |
21 |
XmlNodeReader XmlNode内のXMLデータへの高速でキャッシュされない前方アクセスのみを提供するリーダーを表します。 |
22 |
XmlNotation <!NOTATION …などの表記法宣言を表します >. |
23 |
XmlParserContext XmlReaderがXMLフラグメントを解析するために必要なすべてのコンテキスト情報を提供します。 |
24 |
XmlProcessingInstruction ドキュメントのテキストにプロセッサ固有の情報を保持するためにXMLが定義する処理命令を表します。 |
25 |
XmlQualifiedName XML修飾名を表します。 |
26 |
XmlReader XMLデータへの高速でキャッシュされない前方専用アクセスを提供するリーダーを表します。 |
27 |
XmlReaderSettings Createメソッドによって作成されたXmlReaderオブジェクトでサポートする一連の機能を指定します。 |
28 |
XmlResolver URI(Uniform Resource Identifier)によって名前が付けられた外部XMLリソースを解決します。 |
29 |
XmlSecureResolver XmlResolverオブジェクトをラップし、基になるXmlResolverがアクセスできるリソースを制限することにより、XmlResolverの別の実装を保護するのに役立ちます。 |
30 |
XmlSignificantWhitespace 混合コンテンツノードのマークアップ間の空白、またはxml:space = 'preserve’スコープ内の空白を表します。 これは、重要な空白とも呼ばれます。 |
31 |
XmlText 要素または属性のテキストコンテンツを表します。 |
32 |
XmlTextReader XMLデータへの高速でキャッシュされないフォワード専用アクセスを提供するリーダーを表します。 |
33 |
XmlTextWriter W3C Extensible Markup Language(XML)1.0およびXML推奨の名前空間に準拠するXMLデータを含むストリームまたはファイルを生成する、高速でキャッシュされないフォワード専用の方法を提供するライターを表します。 |
34 |
XmlUrlResolver URI(Uniform Resource Identifier)によって名前が付けられた外部XMLリソースを解決します。 |
35 |
XmlWhitespace 要素コンテンツの空白を表します。 |
36 |
XmlWriter XMLデータを含むストリームまたはファイルを生成する、高速でキャッシュされていない、転送専用の手段を提供するライターを表します。 |
37 |
XmlWriterSettings XmlWriter.Createメソッドによって作成されたXmlWriterオブジェクトでサポートする一連の機能を指定します。 |
XMLパーサーAPI
XMLデータに対して最も基本的で広く使用されている2つのAPIは、SAXおよびDOMインターフェースです。
- * Simple API for XML(SAX)*-ここでは、目的のイベントのコールバックを登録し、パーサーにドキュメントを処理させます。 これは、ドキュメントが大きい場合やメモリに制限がある場合に便利です。ファイルをディスクから読み取るときに解析し、ファイル全体がメモリに保存されることはありません。
- Document Object Model(DOM)API -これはWorld Wide Web Consortiumの推奨事項で、ファイル全体がメモリに読み込まれ、XMLドキュメントのすべての機能を表す階層(ツリーベース)形式で保存されます。
SAXは明らかに、大きなファイルを操作する場合、DOMほど速く情報を処理できません。 一方、DOMを排他的に使用すると、特に多くの小さなファイルで使用する場合、リソースを本当に殺す可能性があります。
SAXは読み取り専用ですが、DOMはXMLファイルの変更を許可します。 これら2つの異なるAPIは文字通り互いに補完するため、大規模なプロジェクトで両方を使用できない理由はありません。
すべてのXMLコードの例について、単純なXMLファイルmovies.xmlを入力として使用しましょう-
SAX APIを使用したXMLの解析
SAXモデルでは、 XmlReader および XmlWriter クラスを使用してXMLデータを操作します。
例1
この例は、movies.xmlファイルからXMLデータを読み取る方法を示しています。
次の手順を実行します-
- movies.xmlファイルをアプリケーションのbin \ Debugフォルダーに追加します。
- Form1.vbファイルにSystem.Xml名前空間をインポートします。
- フォームにラベルを追加し、そのテキストを「Movies Galore」に変更します。
- 3つのリストボックスと3つのボタンを追加して、xmlファイルの映画のタイトル、タイプ、説明を表示します。
- コードエディタウィンドウを使用して次のコードを追加します。
Microsoft Visual Studioのツールバーにある[開始]ボタンを使用して、上記のコードを実行および実行します。 ボタンをクリックすると、ファイルのムービーのタイトル、タイプ、説明が表示されます。
例2
実行時にデータを追加してXMLファイルを作成しましょう。 次の手順を実行します-
- フォームにWebBrowserコントロールとボタンコントロールを追加します。
- ボタンのTextプロパティをShow Authors Fileに変更します。
- コードエディターで次のコードを追加します。
DOM APIを使用したXMLの解析
ドキュメントオブジェクトモデル(DOM)によると、XMLドキュメントはノードとノードの属性で構成されます。* XmlDocument *クラスは、.Net FrameworkのXML DOMパーサーを実装するために使用されます。 また、ドキュメント内のデータを挿入、削除、または更新することにより、既存のXMLドキュメントを変更できます。
以下は、 XmlDocument クラスの一般的に使用されるメソッドの一部です-
Sr.No. | Method Name & Description |
---|---|
1 |
AppendChild このノードの子ノードのリストの最後に指定されたノードを追加します。 |
2 |
CreateAttribute(String) 指定された名前でXmlAttributeを作成します。 |
3 |
CreateComment 指定されたデータを含むXmlCommentを作成します。 |
4 |
CreateDefaultAttribute 指定されたプレフィックス、ローカル名、ネームスペースURIを使用してデフォルト属性を作成します。 |
5 |
CreateElement(String) 指定された名前で要素を作成します。 |
6 |
CreateNode(String, String, String) 指定されたノードタイプ、名前、およびNamespaceURIでXmlNodeを作成します。 |
7 |
CreateNode(XmlNodeType, String, String) 指定されたXmlNodeType、Name、およびNamespaceURIを使用してXmlNodeを作成します。 |
8 |
CreateNode(XmlNodeType, String, String, String) 指定されたXmlNodeType、Prefix、Name、およびNamespaceURIを使用してXmlNodeを作成します。 |
9 |
CreateProcessingInstruction 指定された名前とデータでXmlProcessingInstructionを作成します。 |
10 |
CreateSignificantWhitespace XmlSignificantWhitespaceノードを作成します。 |
11 |
CreateTextNode 指定されたテキストでXmlTextを作成します。 |
12 |
CreateWhitespace XmlWhitespaceノードを作成します。 |
13 |
CreateXmlDeclaration 指定した値でXmlDeclarationノードを作成します。 |
14 |
GetElementById 指定されたIDを持つXmlElementを取得します。 |
15 |
GetElementsByTagName(String) 指定された名前に一致するすべての子孫要素のリストを含むXmlNodeListを返します。 |
16 |
GetElementsByTagName(String, String) 指定されたLocalNameおよびNamespaceURIに一致するすべての子孫要素のリストを含むXmlNodeListを返します。 |
17 |
InsertAfter 指定した参照ノードの直後に指定したノードを挿入します。 |
18 |
InsertBefore 指定した参照ノードの直前に指定したノードを挿入します。 |
19 |
Load(Stream) 指定されたストリームからXMLドキュメントをロードします。 |
20 |
Load(String) 指定されたURLからXMLドキュメントをロードします。 |
21 |
Load(TextReader) 指定されたTextReaderからXMLドキュメントをロードします。 |
22 |
Load(XmlReader) 指定したXmlReaderからXMLドキュメントをロードします。 |
23 |
LoadXml 指定された文字列からXMLドキュメントをロードします。 |
24 |
PrependChild このノードの子ノードのリストの先頭に指定されたノードを追加します。 |
25 |
ReadNode XmlReaderの情報に基づいてXmlNodeオブジェクトを作成します。 リーダーは、ノードまたは属性に配置する必要があります。 |
26 |
RemoveAll 現在のノードのすべての子ノードおよび/または属性を削除します。 |
27 |
RemoveChild 指定された子ノードを削除します。 |
28 |
ReplaceChild 子ノードoldChildをnewChildノードに置き換えます。 |
29 |
Save(Stream) XMLドキュメントを指定されたストリームに保存します。 |
30 |
Save(String) XMLドキュメントを指定されたファイルに保存します。 |
31 |
Save(TextWriter) XMLドキュメントを指定されたTextWriterに保存します。 |
32 |
Save(XmlWriter) XMLドキュメントを指定されたXmlWriterに保存します。 |
実施例3
この例では、xmlドキュメントauthors.xmlにいくつかの新しいノードを挿入し、リストボックスにすべての作成者の名を表示します。
次の手順を実行します-
- authors.xmlファイルをアプリケーションのbin/Debugフォルダーに追加します(最後の例を試した場合はそこにあるはずです)
- System.Xml名前空間をインポートする
- フォームにリストボックスとボタンコントロールを追加し、ボタンコントロールのtextプロパティをShow Authorsに設定します。
- コードエディターを使用して次のコードを追加します。
- Microsoft Visual Studioのツールバーにある[開始]ボタンを使用して、上記のコードを実行および実行します。 [著者を表示]ボタンをクリックすると、実行時に追加した著者を含むすべての著者の名が表示されます。