XmlReader.ReadToDescendant 方法

定義

往前推進XmlReader下一個相符的子系項目。

多載

ReadToDescendant(String, String)

往前推進XmlReader下一個子系的項目,使用指定的區域名稱和命名空間 URI。

ReadToDescendant(String)

往前推進XmlReader下一個子系的項目,具有指定限定名稱。

ReadToDescendant(String, String)

Source:
XmlReader.cs
Source:
XmlReader.cs
Source:
XmlReader.cs

往前推進XmlReader下一個子系的項目,使用指定的區域名稱和命名空間 URI。

public:
 virtual bool ReadToDescendant(System::String ^ localName, System::String ^ namespaceURI);
public virtual bool ReadToDescendant (string localName, string namespaceURI);
abstract member ReadToDescendant : string * string -> bool
override this.ReadToDescendant : string * string -> bool
Public Overridable Function ReadToDescendant (localName As String, namespaceURI As String) As Boolean

參數

localName
String

您要移至之項目的區域名稱。

namespaceURI
String

您要移至之項目的命名空間 URI。

傳回

true如果找到相符的子系項目否則false。 如果找不到相符的子代專案,則會 XmlReader 位於專案的結束記號 (NodeType) XmlNodeType.EndElement

如果XmlReader不位於項目上時ReadToDescendant(String, String)呼叫,這個方法會傳回false和位置XmlReader則不會變更。

例外狀況

在先前的非同步作業完成前呼叫了 XmlReader 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

這兩個參數值為 null

適用於

ReadToDescendant(String)

Source:
XmlReader.cs
Source:
XmlReader.cs
Source:
XmlReader.cs

往前推進XmlReader下一個子系的項目,具有指定限定名稱。

public:
 virtual bool ReadToDescendant(System::String ^ name);
public virtual bool ReadToDescendant (string name);
abstract member ReadToDescendant : string -> bool
override this.ReadToDescendant : string -> bool
Public Overridable Function ReadToDescendant (name As String) As Boolean

參數

name
String

您要移至之項目的限定名稱。

傳回

true如果找到相符的子系項目否則false。 如果找不到相符的子代專案,則會 XmlReader 位於專案的結束記號 (NodeType) XmlNodeType.EndElement

如果XmlReader不位於項目上時ReadToDescendant(String)呼叫,這個方法會傳回false和位置XmlReader則不會變更。

例外狀況

在先前的非同步作業完成前呼叫了 XmlReader 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

參數為空字串。

範例

下列範例會剖析第二個書籍節點。

using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Move the reader to the second book node.
  reader.MoveToContent();
  reader.ReadToDescendant("book");
  reader.Skip(); //Skip the first book.

  // Parse the file starting with the second book node.
  do {
     switch (reader.NodeType) {
        case XmlNodeType.Element:
           Console.Write("<{0}", reader.Name);
           while (reader.MoveToNextAttribute()) {
               Console.Write(" {0}='{1}'", reader.Name, reader.Value);
           }
           Console.Write(">");
           break;
        case XmlNodeType.Text:
           Console.Write(reader.Value);
           break;
        case XmlNodeType.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
     }
  }  while (reader.Read());
}
Using reader As XmlReader = XmlReader.Create("2books.xml")

  ' Move the reader to the second book node.
  reader.MoveToContent()
  reader.ReadToDescendant("book")
  reader.Skip() 'Skip the first book.
  ' Parse the file starting with the second book node.
  Do
    Select Case reader.NodeType
      Case XmlNodeType.Element
        Console.Write("<{0}", reader.Name)
        While reader.MoveToNextAttribute()
            Console.Write(" {0}='{1}'", reader.Name, reader.Value)
        End While
        Console.Write(">")
      Case XmlNodeType.Text
        Console.Write(reader.Value)
      Case XmlNodeType.EndElement
        Console.Write("</{0}>", reader.Name)
    End Select
  Loop While reader.Read()

End Using

此範例會使用 檔案 2books.xml ,作為輸入。

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

適用於