Visual Basic を使用して、XPathNavigator クラスで XML をナビゲートする方法

文書翻訳 文書翻訳
文書番号: 301111 - 対象製品
この記事は、以前は次の ID で公開されていました: JP301111
Microsoft Visual C# バージョンのこの資料では、参照してください。 308343.
この Microsoft Visual Basic 6.0 バージョン記事は、 271619.
すべて展開する | すべて折りたたむ

目次

概要

この資料でに移動する方法を示しています。拡張マークアップ言語 (XML) ドキュメントは、 XPathDocumentオブジェクトから作成されたXPathNavigatorオブジェクトを使用します。このサンプルXPathDocumentオブジェクトに XML データを読み込み、データのビューとしてXPathNavigatorオブジェクトを作成、歩くことによって、XML が表示されます。文書をします。

要件

、次のとおり、推奨されるハードウェア、ソフトウェア、ネットワークを概要します。インフラストラクチャ、および必要な service pack:
  • Microsoft Windows Server 2003、Microsoft Windows 2000プロフェッショナルで、Windows 2000 Server、Windows 2000 Server、または Microsoft 詳細Windows NT 4.0 サーバー
  • Microsoft Visual Studio 2005年や Microsoft Visual Studio.NET
これ資料では、次のトピックに精通しているを前提としています。
  • XML の用語集
  • 作成し、XML ファイルの読み込み
  • XML パス言語 (XPath) の構文

XPathNavigator クラスを使用して XML をナビゲートする方法

  1. 2005 年の Visual Studio、または Visual Studio。NET で作成します。Visual Basic 2005年または .net のコンソール アプリケーションを Visual Basic。

    次の使用例は、Books.xml という名前のファイルを使用します。作成することができます。または、独自の Books.xml ファイルに付属しているサンプルを使用できます、.NET ソフトウェア開発キット (SDK) クイック。クイック スタートをお持ちの場合インストールされている、Books.xml は次のフォルダーにあります。
    \Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    別の方法として、このファイルは、次の Web サイトにアクセスして取得できます。
    .aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/ms762271 (v=vs.85)

    Books.xml をコピーする必要があります、作成したこのフォルダーの下にある \Bin\Debug フォルダープロジェクトです。
  2. プロジェクトがSystem.Xml名前空間を参照するかどうかを確認します。
  3. 宣言を修飾する必要はありませんように、 XmlXPath名前空間にImportsステートメントを使用します。これらの名前空間、コードの後半。Importsステートメントは他の宣言より前で使用する必要があります。
    Imports System.Xml
    Imports System.Xml.XPath
    					
  4. 適切な変数を宣言します。XML ドキュメントを保持するXPathDocumentオブジェクトおよび XPath 式を評価し、間を移動するには、 XPathNavigatorオブジェクトを宣言する、ドキュメントです。XPath 式を保持するStringオブジェクトを宣言します。宣言コードを追加します。Module1 のMainプロシージャします。
    Dim nav As XPathNavigator
    Dim docNav As XPathDocument
    					
  5. サンプル ファイル Books.xml をXPathDocumentオブジェクトを読み込みます。XPathDocumentクラスは、拡張スタイル シート言語変換 (XSLT) を使用してください。XML ドキュメントの処理を高速かつパフォーマンス指向のキャッシュを提供します。XML ドキュメント オブジェクト モデル (DOM) に似ていますが、高度に最適化されていますXSLT 処理と XPath データ モデル用。
    'Open the XML.
    docNav = New XPathDocument("books.xml")
    					
  6. ドキュメントからXPathNavigatorオブジェクトを作成します。XPathNavigatorを使用すると、両方の属性ノードを移動して、XML ドキュメント内の名前空間ノードです。
    'Create a navigator to query with XPath.
    nav = docNav.CreateNavigator
    					
  7. MoveToRootメソッドを使用、ドキュメントのルートに移動します。MoveToRootナビゲーター全体が含まれているドキュメントのノードを設定します。ツリーのノード。
    'Initial XPathNavigator to start at the root.
    nav.MoveToRoot()
    					
  8. MoveToFirstChildメソッドを使用して、XML ドキュメントの子に移動します。MoveToFirstChildメソッドは、現在のノードの最初の子に移動します。場合はルート ドキュメントにから移動、Books.xml ソースのです、子、コメント セクション、および書店ノード。
    'Move to the first child node (comment field).
    nav.MoveToFirstChild()
    					
  9. MoveToNextメソッドを使用すると、兄弟レベルのノードを反復処理します。MoveToNextメソッドは、現在のノードの次の兄弟に移動します。
    'Loop through all the root nodes.
    Do
        ...
    Loop While nav.MoveToNext
    					
  10. NodeTypeプロパティを使用して、要素ノードだけ処理されることを確認するのには、要素のテキストを表示するのにはValueプロパティを使用します。
    Do
        'Find the first element.
        If nav.NodeType = XPathNodeType.Element Then
    'If children exist.
    If nav.HasChildren Then
    
        'Move to the first child.
        nav.MoveToFirstChild()
    
        'Loop through all the children.
        Do
    'Display the data.
    Console.Write("The XML string for this child ")
    Console.WriteLine("is '{0}'", nav.Value)
    Loop While nav.MoveToNext
    
    End If
        End If
    Loop While nav.MoveToNext
    					
  11. ノードに属性があるかどうかを確認するには、 HasAttributesプロパティを使用します。できます。また属性に移動し、その値を検査するには、 MoveToNextAttributeなど、その他の方法を使用します。注これコード セグメントは、ルート ノードの子孫をのみについて説明していませんが木の全体です。
    Do
        'Find the first element.
        If nav.NodeType = XPathNodeType.Element Then
    'if children exist
    If nav.HasChildren Then
    
        'Move to the first child.
        nav.MoveToFirstChild()
    
        'Loop through all the children.
        Do
    'Display the data.
    Console.Write("The XML string for this child ")
    Console.WriteLine("is '{0}'", nav.Value)
    
    'Check for attributes.
    If nav.HasAttributes Then
        		Console.WriteLine("This node has attributes")
    End If
    Loop While nav.MoveToNext
    
    End If
        End If
    Loop While nav.MoveToNext
    					
  12. コンソール・ オブジェクトのReadLineメソッドを使用して、コンソール画面の最後に、さらには、一時停止を追加するには上記の結果をすぐに表示されます。
    'Pause.
    Console.ReadLine()
    					
  13. ビルドし、コンソール アプリケーション プロジェクトを実行します。

完全なコード リスト

Imports System.Xml
Imports System.Xml.XPath

Module Module1

    Sub Main()
        Dim nav As XPathNavigator
        Dim docNav As XPathDocument
        docNav = New XPathDocument("books.xml")
        nav = docNav.CreateNavigator
        nav.MoveToRoot()
        'Move to the first child node (comment field).
        nav.MoveToFirstChild()

        Do
            'Find the first element.
            If nav.NodeType = XPathNodeType.Element Then
                'if children exist
                If nav.HasChildren Then

                    'Move to the first child.
                    nav.MoveToFirstChild()

                    'Loop through all the children.
                    Do
                        'Display the data.
                        Console.Write("The XML string for this child ")
                        Console.WriteLine("is '{0}'", nav.Value)

                        'Check for attributes.
                        If nav.HasAttributes Then
                            Console.WriteLine("This node has attributes")
                        End If
                    Loop While nav.MoveToNext

                End If
            End If
        Loop While nav.MoveToNext

        'Pause.
        Console.ReadLine()

    End Sub

End Module
				

関連情報

の詳細については、次のマイクロソフト開発ネットワーク (MSDN) の Web を参照してください。サイト:
.NET での XML:.NET Framework の XML クラスおよび C# シンプルでスケーラブルなデータ操作を提供。
http://msdn.microsoft.com/msdnmag/issues/01/01/xml

XPathNavigator クラス
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathnavigator.aspx

XPathDocument クラス
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathdocument.aspx

XslTransform クラスは XSLT 変換
http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltransform.aspx

XPath の例
http://msdn.microsoft.com/en-us/library/ms256086.aspx
の詳細については、次の World Wide Web コンソーシアム (W3C) Web サイトを参照してください。
XML パス言語 (XPath)
Version 1.0: W3C 勧告 16 年 11 月1999
http://www.w3.org/TR/1999/REC-xpath-19991116

プロパティ

文書番号: 301111 - 最終更新日: 2012年7月5日 - リビジョン: 1.0
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
キーワード:?
kbvs2005applies kbvs2005swept kbdownload kbsample kbhowtomaster kbmt KB301111 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:301111
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com