XmlReader.ReadInnerXml Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 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. .