XmlReader.ReadOuterXml Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
När det åsidosättas i en härledd klass läser det innehållet, inklusive markering, som representerar den här noden och alla dess underordnade.
public:
virtual System::String ^ ReadOuterXml();
public virtual string ReadOuterXml();
abstract member ReadOuterXml : unit -> string
override this.ReadOuterXml : unit -> string
Public Overridable Function ReadOuterXml () As String
Returer
Om läsaren är placerad på ett element eller en attributnod returnerar den här metoden allt XML-innehåll, inklusive markering, för den aktuella noden och alla dess underordnade. annars returneras en tom sträng.
Undantag
XML-koden var inte korrekt utformad, eller så uppstod ett fel när XML-koden tolkades.
En XmlReader metod anropades innan en tidigare asynkron åtgärd slutfördes. I det här fallet InvalidOperationException genereras meddelandet "En asynkron åtgärd pågår redan".
Exempel
I följande exempel jämförs ReadInnerXml metoderna och ReadOuterXml .
// 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
I exemplet används 2books.xml filen som indata.
<!--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>
Kommentarer
Den här metoden liknar förutom att ReadInnerXml den även returnerar start- och sluttaggar.
Den här metoden hanterar element- och attributnoder på följande sätt:
| Nodtyp | Position före samtalet | XML-fragment | Returvärde | Position efter samtalet |
|---|---|---|---|---|
Element |
På starttaggen item1 . |
<item1>text1</item1><item2>text2</item2> | <item1>text1</item1> | På starttaggen item2 . |
Attribute |
På attributnoden attr1 . |
<item attr1="val1" attr2="val2">text</item> | attr1="val1" | Finns kvar på attributnoden attr1 . |
Om läsaren är placerad på en lövnod motsvarar anropet ReadOuterXml .Read Metoden returnerar String.Empty (med undantag för attributnoder, i vilket fall attributmarkeringen returneras).
Den här metoden söker efter välformulerad XML. Om ReadOuterXml anropas från en XmlValidatingReadervaliderar den här metoden även innehållet som returneras
Som implementerats i XmlNodeReader- XmlTextReader och XmlValidatingReader -klasserna ReadOuterXml är metoden namnområdesmedveten. Med följande XML-text <A xmlns:S="urn:1"><S:B>hello</S:B></A>returnerar returnerar S:Bom läsaren var placerad på ReadOuterXml starttaggen <S:B xmlns:S="urn:1">hello<S:B/> .
Den asynkrona versionen av den här metoden finns i ReadOuterXmlAsync.