XmlReader.ReadOuterXml Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Ha egy származtatott osztályban felül van bírálva, beolvassa a tartalmat, beleértve a korrektúrát is, amely a csomópontot és annak összes gyermekét jelöli.
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
Válaszok
Ha az olvasó egy elemen vagy attribútumcsomóponton van elhelyezve, ez a metódus az aktuális csomópont és annak összes gyermekének XML-tartalmát adja vissza, beleértve a korrektúrát is; ellenkező esetben üres sztringet ad vissza.
Kivételek
Az XML nem volt megfelelően formázva, vagy hiba történt az XML elemzése során.
Egy XmlReader metódust hívtak meg, mielőtt egy korábbi aszinkron művelet befejeződött. Ebben az esetben InvalidOperationException a "Aszinkron művelet már folyamatban van" üzenet jelenik meg.
Példák
Az alábbi példa a metódusokat és ReadInnerXml a ReadOuterXml metódusokat hasonlítja össze.
// 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
A példa fájlokat használ 2books.xml bemenetként.
<!--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>
Megjegyzések
Ez a módszer hasonló, ReadInnerXml kivéve, ha a kezdő és a záró címkét is visszaadja.
Ez a metódus az elem- és attribútumcsomópontokat a következő módon kezeli:
| Csomópont típusa | Pozíció a hívás előtt | XML-töredék | Visszaadott érték | Pozíció a hívás után |
|---|---|---|---|---|
Element |
A kezdőcímkén item1 . |
<item1>text1</item1><item2>text2</item2> | <item1>text1</item1> | A kezdőcímkén item2 . |
Attribute |
Az attr1 attribútumcsomóponton. |
<item attr1="val1" attr2="val2">text</item> | attr1="val1" | Az attribútumcsomóponton attr1 marad. |
Ha az olvasó egy levélcsomóponton van elhelyezve, a hívás ReadOuterXml egyenértékű a hívással Read. A metódus visszaadja String.Empty (kivéve az attribútumcsomópontokat, ebben az esetben az attribútum-korrektúra lesz visszaadva).
Ez a módszer a jól formázott XML-t ellenőrzi. Ha ReadOuterXml egy rendszer meghívja, XmlValidatingReaderez a metódus a visszaadott tartalmat is ellenőrzi
A metódus a , XmlNodeReader és XmlTextReader osztályokban XmlValidatingReaderimplementálva a ReadOuterXml névtérérzékeny. Az alábbi XML-szöveg alapján , ha az olvasó a kezdőcímkén volt elhelyezve, <A xmlns:S="urn:1"><S:B>hello</S:B></A> a S:B visszaadott ReadOuterXmlértéket <S:B xmlns:S="urn:1">hello<S:B/>adja vissza.
A metódus aszinkron verziójáról lásd ReadOuterXmlAsync: .