XmlReader.ReadInnerXml Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, işaretleme de dahil olmak üzere tüm içeriği dize olarak okur.

public:
 virtual System::String ^ ReadInnerXml();
public virtual string ReadInnerXml ();
abstract member ReadInnerXml : unit -> string
override this.ReadInnerXml : unit -> string
Public Overridable Function ReadInnerXml () As String

Döndürülenler

String

Geçerli düğümdeki işaretleme de dahil olmak üzere tüm XML içeriği. Geçerli düğümde alt öğe yoksa boş bir dize döndürülür.

Geçerli düğüm bir öğe veya öznitelik değilse boş bir dize döndürülür.

Özel durumlar

XML iyi biçimlendirilmemiş veya XML ayrıştırılırken bir hata oluştu.

Önceki XmlReader bir zaman uyumsuz işlem tamamlanmadan önce bir yöntem çağrıldı. Bu durumda, InvalidOperationException "Zaman uyumsuz bir işlem zaten devam ediyor" iletisiyle oluşturulur.

Örnekler

Aşağıdaki örnek ve ReadOuterXml yöntemlerini karşılaştırırReadInnerXml.

// Load the file and ignore all white space.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Moves the reader to the root element.
  reader.MoveToContent();

  // Moves to book node.
  reader.Read();

  // Note that ReadInnerXml only returns the markup of the node's children
  // so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...");
  Console.WriteLine(reader.ReadInnerXml());

  // ReadOuterXml returns the markup for the current node and its children
  // so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...");
  Console.WriteLine(reader.ReadOuterXml());
}
' Load the file and ignore all white space.
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
Using reader As XmlReader = XmlReader.Create("2books.xml")

  ' Moves the reader to the root element.
  reader.MoveToContent()
                
  ' Moves to book node.
  reader.Read()
                
  ' Note that ReadInnerXml only returns the markup of the node's children
  ' so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...")
  Console.WriteLine(reader.ReadInnerXml())
                
  ' ReadOuterXml returns the markup for the current node and its children
  ' so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...")
  Console.WriteLine(reader.ReadOuterXml())

End Using

Örnekte girdi olarak dosya kullanılır 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>

Açıklamalar

Bu yöntem, işaretleme de dahil olmak üzere geçerli düğümün tüm içeriğini döndürür. Geçerli düğüm (başlangıç etiketi) ve karşılık gelen bitiş düğümü (bitiş etiketi) döndürülmüyor. Örneğin, aşağıdakiler varsa:

<node>
 this <child id="123"/>
</node>

ReadInnerXml Döndürür this <child id="123"/>

Bu yöntem, öğe ve öznitelik düğümlerini aşağıdaki şekilde işler:

Düğüm türü Aramadan önceki konum XML parçası Döndürülen değer Aramadan sonraki konum
Element Başlangıç etiketinde item1 . <item1>metin1metin2</item1><item2></item2> metin1 Başlangıç etiketinde item2 .
Attribute Öznitelik düğümünde attr1 . <item attr1="val1" attr2="val2">metin</item> val1 Öznitelik düğümünde attr1 kalır.

Okuyucu bir yaprak düğümde konumlandırılmışsa, çağrısı ReadInnerXml çağrısıyla Readeşdeğerdir. yöntemi döndürür String.Empty (öznitelik düğümleri dışında, bu durumda özniteliğin değeri döndürülür).

Bu yöntem iyi biçimlendirilmiş XML'i denetler. bir 'den XmlValidatingReaderçağrılırsaReadInnerXml, bu yöntem döndürülen içeriği de doğrular.

ve XmlValidatingReader XmlTextReader sınıflarında XmlNodeReaderuygulandığı gibi yöntemi ad ReadOuterXml alanının farkındadır.

Bu yöntemin zaman uyumsuz sürümü için bkz ReadInnerXmlAsync. .

Şunlara uygulanır