XmlReader.ReadInnerXml XmlReader.ReadInnerXml XmlReader.ReadInnerXml XmlReader.ReadInnerXml Method

Definizione

Quando sottoposto a override in una classe derivata, legge tutto il contenuto come stringa, incluso il markup.When overridden in a derived class, reads all the content, including markup, as a string.

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

Restituisce

Tutto il contenuto XML del nodo corrente, incluso il markup.All the XML content, including markup, in the current node. Se il nodo corrente non dispone di elementi figlio, verrà restituita una stringa vuota.If the current node has no children, an empty string is returned.

Se il nodo corrente non è né un elemento né un attributo, verrà restituita una stringa vuota.If the current node is neither an element nor attribute, an empty string is returned.

Eccezioni

L'XML non è in formato corretto oppure si è verificato un errore durante l'analisi dell'XML.The XML was not well-formed, or an error occurred while parsing the XML.

È stato chiamato un metodo della classe XmlReader prima del completamento di un'operazione asincrona precedente.An XmlReader method was called before a previous asynchronous operation finished. In questo caso, viene generata l'eccezione InvalidOperationException con il messaggio "È già in corso un'operazione asincrona".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Esempi

Nell'esempio seguente vengono confrontate le ReadInnerXml e ReadOuterXml metodi.The following example compares the ReadInnerXml and ReadOuterXml methods.

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

L'esempio Usa 2books.xml file come input.The example uses 2books.xml file as input.

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

Commenti

Questo metodo restituisce tutto il contenuto del nodo corrente inclusi i markup.This method returns all the content of the current node including the markup. Il nodo corrente, ovvero il tag di inizio, e il corrispondente nodo o tag di fine non vengono restituiti.The current node (start tag) and corresponding end node (end tag) are not returned. Ad esempio, se si dispone di quanto segue:For example, if you had the following:

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

ReadInnerXml restituisce this <child id="123"/>ReadInnerXml returns this <child id="123"/>

Questo metodo gestisce i nodi di elementi e attributi nel modo seguente:This method handles element and attribute nodes in the following manner:

Tipo di nodoNode type Posizione prima della chiamataPosition before the call Frammento XMLXML fragment Valore restituitoReturn value Posizione dopo la chiamataPosition after the call
Element In corrispondenza del tag di inizio item1.On the item1 start tag. <item1>text1</item1><item2>text2</item2><item1>text1</item1><item2>text2</item2> text1text1 In corrispondenza del tag di inizio item2.On the item2 start tag.
Attribute In corrispondenza del nodo Attribute attr1.On the attr1 attribute node. <item attr1="val1" attr2="val2">text</item><item attr1="val1" attr2="val2">text</item> val1val1 Rimane in corrispondenza del nodo Attribute attr1.Remains on the attr1 attribute node.

Se il lettore è posizionato in corrispondenza di un nodo foglia, la chiamata al metodo ReadInnerXml equivarrà alla chiamata al metodo Read.If the reader is positioned on a leaf node, calling ReadInnerXml is equivalent to calling Read. Il metodo restituisce String.Empty (tranne che per i nodi attributo, nel qual caso viene restituito il valore dell'attributo).The method returns String.Empty (except for attribute nodes, in which case the value of the attribute is returned).

Questo metodo controlla XML ben formato.This method checks for well-formed XML. Se ReadInnerXml viene chiamato da un XmlValidatingReader, questo metodo convalida inoltre il contenuto restituito.If ReadInnerXml is called from an XmlValidatingReader, this method also validates the content returned.

Come è implementato nel XmlNodeReader, XmlTextReader e XmlValidatingReader classi il ReadOuterXml metodo è compatibile con lo spazio dei nomi.As implemented in the XmlNodeReader, XmlTextReader and XmlValidatingReader classes the ReadOuterXml method is namespace aware.

Per la versione asincrona di questo metodo, vedere ReadInnerXmlAsync.For the asynchronous version of this method, see ReadInnerXmlAsync.

Si applica a