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

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 ReadInnerXml yöntemlerini karşılaştırırReadOuterXml.

// 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

Örnek, girdi olarak dosya kullanı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 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 buna karşılık gelen bitiş düğümü (bitiş etiketi) döndürülmüyor. Örneğin, aşağıdakilere sahipseniz:

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

ReadInnerXml, this <child id="123"/> döndürür.

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önüş değeri Aramadan sonraki konum
Element Başlangıç etiketinde item1 . <öğe1>metin1</öğe1><öğe2>metin2</öğe2> metin1 Başlangıç etiketinde item2 .
Attribute Öznitelik düğümünde attr1 . <item attr1="val1" attr2="val2">text</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 ReadInnerXmlçağrılırsaXmlValidatingReader, bu yöntem döndürülen içeriği de doğrular.

ve sınıflarında XmlNodeReaderXmlTextReaderXmlValidatingReaderReadOuterXml uygulandığı gibi yöntemi ad alanını algılar.

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

Şunlara uygulanır