次の方法で共有


XmlValidatingReader.Depth プロパティ

XML ドキュメント内の現在のノードの深さを取得します。

Overrides Public ReadOnly Property Depth As Integer
[C#]
public override int Depth {get;}
[C++]
public: __property int get_Depth();
[JScript]
public override function get Depth() : int;

プロパティ値

XML ドキュメント内の現在のノードの深さ。

使用例

深さ、行番号、行の位置などを含む各ノードを表示する例を次に示します。

 
Imports System
Imports System.IO
Imports System.Xml
Imports Microsoft.VisualBasic

public class Sample

  public shared sub Main()

    ' Create the XML fragment to be parsed.
    Dim xmlFrag as string = "<book>" + Chr(10) & _
                            "  <misc>"  + Chr(10) & _
                            "    <style>paperback</style>"  + Chr(10) & _
                            "    <pages>240</pages>" + Chr(10) & _
                            "  </misc>" + Chr(10) & _
                            "</book>"

    ' Create the XmlNamespaceManager.
    Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(new NameTable())

    ' Create the XmlParserContext.
    Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)

    ' Create the reader.
    Dim reader as XmlValidatingReader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context)

    Dim lineInfo as IXmlLineInfo = CType(reader, IXmlLineInfo)
    if (lineInfo.HasLineInfo())
       
      ' Parse the XML and display each node.
      while (reader.Read())
       select case reader.NodeType
         case XmlNodeType.Element:
           Console.Write("{0} {1},{2}  ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition)
           Console.WriteLine("<{0}>", reader.Name)
         case XmlNodeType.Text:
           Console.Write("{0} {1},{2}  ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition)
           Console.WriteLine("  {0}", reader.Value)
         case XmlNodeType.EndElement:
           Console.Write("{0} {1},{2}  ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition)
           Console.WriteLine("</{0}>", reader.Name)
       end select       
      end while           
    end if

    ' Close the reader.
    reader.Close()     
  
  end sub
end class

[C#] 
using System;
using System.IO;
using System.Xml;

public class Sample{

  public static void Main(){

    // Create the XML fragment to be parsed.
    string xmlFrag  = 
    @"<book>
           <misc>
              <style>paperback</style>
              <pages>240</pages>
           </misc>
        </book>
    ";

    // Create the XmlNamespaceManager.
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());

    // Create the XmlParserContext.
    XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

    // Create the reader.
    XmlValidatingReader reader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context);

    IXmlLineInfo lineInfo = ((IXmlLineInfo)reader);
    if (lineInfo.HasLineInfo()){
       
      // Parse the XML and display each node.
      while (reader.Read()){
       switch (reader.NodeType){
         case XmlNodeType.Element:
           Console.Write("{0} {1},{2}  ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition);
           Console.WriteLine("<{0}>", reader.Name);
           break;
         case XmlNodeType.Text:
           Console.Write("{0} {1},{2}  ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition);
           Console.WriteLine("  {0}", reader.Value);
           break;
         case XmlNodeType.EndElement:
           Console.Write("{0} {1},{2}  ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition);
           Console.WriteLine("</{0}>", reader.Name);
           break;
       }       
     }           
    }

    // Close the reader.
    reader.Close();       
  }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;

int main() 
{
   // Create the XML fragment to be parsed.
   String * xmlFrag  = 
      S"<book>\n"
      S"<misc>\n"
      S"<style>paperback</style>\n"
      S"<pages>240</pages>\n"
      S"</misc>\n"
      S"</book>\n";

      // Create the XmlNamespaceManager.
      XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable());

   // Create the XmlParserContext.
   XmlParserContext* context = new XmlParserContext(0, nsmgr, 0, XmlSpace::None);

   // Create the reader.
   XmlValidatingReader* reader = new XmlValidatingReader(xmlFrag, XmlNodeType::Element, context);

   IXmlLineInfo* lineInfo = (dynamic_cast<IXmlLineInfo*>(reader));
   if (lineInfo -> HasLineInfo())
   {

      // Parse the XML and display each node.
      while (reader -> Read()) 
      {
         switch (reader -> NodeType) 
         {
         case XmlNodeType::Element:
            Console::Write(S" {0} {1}, {2}  ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) );
            Console::WriteLine(S"< {0}>", reader -> Name);
            break;
         case XmlNodeType::Text:
            Console::Write(S" {0} {1}, {2}  ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) );
            Console::WriteLine(S" {0}", reader -> Value);
            break;
         case XmlNodeType::EndElement:
            Console::Write(S" {0} {1}, {2}  ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) );
            Console::WriteLine(S"</ {0}>", reader -> Name);
            break;
         }       
      }           
   }
   // Close the reader.
   reader -> Close();       
}

[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 ファミリ

参照

XmlValidatingReader クラス | XmlValidatingReader メンバ | System.Xml 名前空間 | IXmlLineInfo