XmlReader.ReadInnerXml 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 felül van bírálva egy származtatott osztályban, az összes tartalmat, beleértve a korrektúrát is, sztringként olvassa be.
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
Válaszok
Az aktuális csomópont összes XML-tartalma, beleértve a korrektúrát is. Ha az aktuális csomópontnak nincsenek gyermekei, a program üres sztringet ad vissza.
Ha az aktuális csomópont nem elem vagy attribútum, a függvény ü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 metódus az aktuális csomópont összes tartalmát adja vissza, beleértve a korrektúrát is. A rendszer nem adja vissza az aktuális csomópontot (kezdőcímkét) és a megfelelő végpontot (végpontcímkét). Ha például a következők voltak:
<node>
this <child id="123"/>
</node>
ReadInnerXml visszaad this <child id="123"/>
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> | szöveg1 | A kezdőcímkén item2 . |
Attribute |
Az attr1 attribútumcsomóponton. |
<item attr1="val1" attr2="val2">text</item> | val1 | Az attribútumcsomóponton attr1 marad. |
Ha az olvasó egy levélcsomóponton van elhelyezve, a hívás ReadInnerXml 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 értékét adja vissza).
Ez a módszer a jól formázott XML-t ellenőrzi. Ha ReadInnerXml 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.
A metódus aszinkron verziójáról lásd ReadInnerXmlAsync: .