Lettura di dati XML con XPathDocument e XmlDocument
Sono disponibili due metodi per leggere un documento XML nello spazio dei nomi System.Xml.XPath. Un metodo consiste nel leggere un documento XML utilizzando la classe di sola lettura XPathDocument, l'altro consiste nel leggere un documento XML utilizzando la classe modificabile XmlDocument nello spazio dei nomi System.Xml.
Lettura di documenti XML con la classe XPathDocument
La classe XPathDocument fornisce una rappresentazione in memoria rapida e di sola lettura di un documento XML utilizzando il modello di dati XPath. Le istanze della classe XPathDocument vengono create utilizzando uno dei sei costruttori disponibili. Tali costruttori consentono di leggere un documento XML utilizzando un oggetto Stream, TextReader o XmlReader nonché il percorso string di un file XML.
Nell'esempio seguente viene illustrato l'utilizzo del costruttore string della classe XPathDocument per leggere un documento XML.
Dim document As XPathDocument = New XPathDocument("books.xml")
XPathDocument document = new XPathDocument("books.xml");
Lettura di documenti XML con la classe XmlDocument Class
La classe XmlDocument è una rappresentazione in memoria modificabile di un documento XML implementando i componenti di base delle specifiche Document Object Model (DOM) Level 1 e Level 2 di W3C. Le istanze della classe XmlDocument vengono create utilizzando uno dei tre costruttori disponibili. È possibile creare un nuovo oggetto vuoto XmlDocument chiamando il costruttore della classe XmlDocument senza parametri. Dopo che il costruttore è stato chiamato, utilizzare il metodo Load per caricare i dati XML nel nuovo oggetto XmlDocument da un oggetto Stream, TextReader o XmlReader, oppure usare il percorso string di un file XML.
Nell'esempio seguente viene illustrato l'utilizzo del costruttore della classe XmlDocument senza parametri e del metodo Load per leggere un documento XML.
Dim document As XmlDocument = New XmlDocument()
document.Load("books.xml")
XmlDocument document = new XmlDocument();
document.Load("books.xml");
Determinazione della codifica di un documento XML
È possibile utilizzare un oggetto XmlReader per leggere un documento XML e per creare oggetti XPathDocument e XmlDocument, come illustrato nelle sezioni precedenti. Tuttavia, un oggetto XmlReader può leggere i dati non codificati e, di conseguenza, non fornisce alcuna informazione relativa alla codifica.
La classe XmlTextReader eredita dalla classe XmlReader, fornisce informazioni sulla codifica utilizzando la relativa proprietà Encoding e può essere utilizzata per creare un oggetto XPathDocument o un oggetto XmlDocument.
Per ulteriori informazioni sulle informazioni di codifica fornite dalla classe XmlTextReader, vedere la proprietà Encoding nella documentazione di riferimento per la classe XmlTextReader.
Creazione di oggetti XPathNavigator
Dopo che è stato letto un documento XML in un oggetto XPathDocument o in un oggetto XmlDocument, è possibile creare un oggetto XPathNavigator per selezionare, valutare, esplorare e, in alcuni casi, modificare i dati XML sottostanti.
Sia la classe XPathDocument che la classe XmlDocument, oltre alla classe XmlNode, implementano l'interfaccia IXPathNavigable dello spazio dei nomi System.Xml.XPath. Di conseguenza, tutte le tre classi forniscono un metodo CreateNavigator che restituisce un oggetto XPathNavigator.
Modifica di documenti XML con la classe XPathNavigator
Oltre a selezionare, valutare ed esplorare i dati XML, in alcuni casi la classe XPathNavigator può essere utilizzata per modificare un documento XML, in base all'oggetto che l'ha creato.
La classe XPathDocument è di sola lettura mentre la classe XmlDocument è modificabile. Di conseguenza non è possibile utilizzare gli oggetti XPathNavigator creati da un oggetto XPathDocument per modificare un documento XML, mentre è possibile utilizzare quelli creati da un oggetto XmlDocument. La classe XPathDocument deve essere utilizzata solo per leggere un documento XML. Se è necessario modificare un documento XML o se è richiesto l'accesso a funzionalità aggiuntive fornite dalla classe XmlDocument, come la gestione degli eventi, è necessario utilizzare la classe XmlDocument.
La proprietà CanEdit della classe XPathNavigator consente di specificare se un oggetto XPathNavigator può modificare i dati XML.
Nella tabella seguente viene descritto il valore della proprietà CanEdit per ogni classe.
Implementazione di IXPathNavigable |
Valore di CanEdit |
---|---|
false |
|
true |
Vedere anche
Riferimenti
Concetti
Elaborazione di dati XML con il modello di dati XPath
Accesso ai dati XML con XPathNavigator