Lettura del contenuto
La classe XmlReader include membri che possono essere utilizzati per leggere il contenuto.
Nota |
---|
I membri descritti in questo argomento restituiscono contenuto sotto forma di valori di stringa.Se si desidera leggere il contenuto in forma tipizzata, vedere Lettura di dati tipizzati. |
Proprietà Value
La proprietà Value può essere utilizzata per ottenere il contenuto di testo del nodo corrente. Il valore restituito dipende dal tipo del nodo corrente. Nella tabella seguente viene descritto il contenuto restituito per ciascuno dei possibili tipi di nodo.
Tipo di nodo |
Valore |
---|---|
Attribute |
Valore dell'attributo. |
CDATA |
Contenuto della sezione CDATA. |
Comment |
Contenuto del commento. |
DocumentType |
Subset interno. |
ProcessingInstruction |
Intero contenuto, ad eccezione della destinazione. |
SignificantWhitespace |
Spazio vuoto tra markup in un modello a contenuto misto. |
Text |
Contenuto del nodo di tipo text. |
Whitespace |
Spazio vuoto tra markup. |
XmlDeclaration |
Contenuto della dichiarazione. |
Tutti gli altri tipi di nodo |
Stringa vuota. |
Metodo ReadString
Il metodo ReadString restituisce il contenuto di un nodo di tipo element o di tipo text sotto forma di stringa.
Se il tipo XmlReader è posizionato in corrispondenza di un elemento ReadString, concatena tutti i nodi di tipo text, i nodi con spazi vuoti significativi, i nodi con spazi vuoti e i nodi della sezione CDATA e restituisce i dati concatenati come contenuto dell'elemento. Il lettore si interrompe quando viene rilevato un markup. Questa situazione può verificarsi in un modello a contenuto misto oppure durante la lettura di un tag di fine elemento.
Se il tipo XmlReader è posizionato in corrispondenza di un nodo di tipo text, il metodo ReadString esegue la stessa concatenazione dei nodi di tipo text, i nodi spazi vuoti significativi, i nodi spazi vuoti e i nodi della sezione CDATA. Il lettore si interrompe in corrispondenza del primo nodo che appartiene a uno dei tipi indicati. Se il lettore è posizionato in corrispondenza di un nodo di tipo text di un attributo, il metodo ReadString funzionerà come quando il lettore è posizionato in corrispondenza del tag di inizio dell'elemento, restituendo tutti i nodi di tipo text dell'elemento concatenati.
Nota |
---|
Il metodo ReadString si interrompe in corrispondenza di istruzioni di elaborazione e commenti.Ovvero, non li ignora. |
Metodo ReadInnerXml
Il metodo ReadInnerXml restituisce l'intero contenuto del nodo corrente, inclusi i markup. Il nodo corrente, ovvero il tag di inizio, e il corrispondente nodo o tag di fine non vengono restituiti. Se, ad esempio si dispone della stringa <node>this<child id="123"/></node>, il metodo ReadInnerXml restituirà this<child id="123"/>.
Nella tabella seguente viene descritto come vengono gestiti i nodi di tipo Element e Attribute.
Tipo di nodo |
Posizione iniziale |
Frammento XML |
Valore restituito |
Posizione successiva |
---|---|---|---|---|
Element |
In corrispondenza del tag di inizio item1. |
<item1>text1</item1><item2>text2</item2> |
text1 |
In corrispondenza del tag di inizio item2. |
Attribute |
In corrispondenza del nodo Attribute attr1. |
<item attr1="val1" attr2="val2">text</item> |
val1 |
Rimane in corrispondenza del nodo Attribute attr1. |
Se il lettore è posizionato in corrispondenza di un nodo foglia, la chiamata al metodo ReadInnerXml equivarrà alla chiamata al metodo Read.
Metodo ReadOuterXml
Il metodo ReadOuterXml restituisce tutto il contenuto XML del nodo corrente e dei relativi nodi figlio, inclusi i markup. Il comportamento di questo metodo è simile a quello del metodo ReadInnerXml, ma a differenza di questo restituisce anche i tag di inizio e di fine.
Utilizzando i valori della tabella precedente, se il lettore è posizionato sul tag di inizio item1, il metodo ReadOuterXml restituisce <item1>text1</item1>. Se il lettore è posizionato sul nodo Attribute attr1, il metodo ReadOuterXml restituisce attr1="val1".