次の方法で共有


XPathNavigator.Value プロパティ

現在のノードのテキスト値を取得します。

Public MustOverride ReadOnly Property Value As String
[C#]
public abstract string Value {get;}
[C++]
public: __property virtual String* get_Value() = 0;
[JScript]
public abstract function get Value() : String;

プロパティ値

返される値は、ノードの NodeType によって異なります。ノードが値を持たない場合は、String.Empty などの空の要素が返されます。各ノード型の戻り値を次の表に定義します。

ノード型
属性 属性の値。
要素 要素の InnerText
Comment コメントの内容。
ProcessingInstruction ターゲットを含まない全体の内容。
Text テキスト ノードの内容。
Whitespace マークアップ間の空白。
SignificantWhitespace 混合コンテンツ モデルのマークアップ間にある空白、または xml:space= 'preserve' スコープ内の空白。
Root ルート ノードの InnerText

使用例

[Visual Basic, C#, C++] ノード ツリーを再帰的にウォークし、要素ノードおよびテキスト ノードについての情報を表示する例を次に示します。

 
public shared sub RecursiveWalk(nav as XPathNavigator)

   select case nav.NodeType
     case XPathNodeType.Element
        if (nav.Prefix=String.Empty)
          Console.WriteLine("<{0}>", nav.LocalName)
        else
          Console.Write("<{0}:{1}>", nav.Prefix, nav.LocalName)
          Console.WriteLine("  "+ nav.NamespaceURI)
        end if
     case XPathNodeType.Text
        Console.WriteLine("  " + nav.Value)
   end select

   if ( nav.MoveToFirstChild() )
      do
         RecursiveWalk(nav)
      loop while ( nav.MoveToNext() )

      nav.MoveToParent()
      if (nav.NodeType = XPathNodeType.Element)
        Console.WriteLine("</{0}>", nav.Name)
      end if
   end if

end sub

[C#] 
public static void RecursiveWalk(XPathNavigator nav)
{
   switch (nav.NodeType){
     case XPathNodeType.Element:
        if (nav.Prefix==String.Empty)
          Console.WriteLine("<{0}>", nav.LocalName);
        else
          Console.Write("<{0}:{1}>", nav.Prefix, nav.LocalName);
          Console.WriteLine("\t"+ nav.NamespaceURI);
        break;
     case XPathNodeType.Text:
        Console.WriteLine("\t" + nav.Value);
        break;
    }

    if ( nav.MoveToFirstChild() )
   {
      do{
         RecursiveWalk(nav);
      } while ( nav.MoveToNext() );

      nav.MoveToParent();
      if (nav.NodeType == XPathNodeType.Element)
        Console.WriteLine("</{0}>", nav.Name);
    }
}    

[C++] 
static void RecursiveWalk(XPathNavigator * nav) 
{
   switch (nav -> NodeType) 
   {
   case XPathNodeType::Element:
      if (nav -> Prefix == String::Empty)
         Console::WriteLine(S"< {0}>", nav -> LocalName);
      else
         Console::Write(S"< {0}: {1}>", nav -> Prefix, nav -> LocalName);
      Console::WriteLine(S"\t {0}", nav -> NamespaceURI);
      break;
   case XPathNodeType::Text:
      Console::WriteLine(S"\t {0}", nav -> Value);
      break;
   }

   if (nav -> MoveToFirstChild()) 
   {
      do 
      {
         RecursiveWalk(nav);
      } while (nav -> MoveToNext());

      nav -> MoveToParent();
      if (nav -> NodeType == XPathNodeType::Element)
         Console::WriteLine(S"</ {0}>", nav -> Name);
   }
}    

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

XPathNavigator クラス | XPathNavigator メンバ | System.Xml.XPath 名前空間