[C#] Parsing XML da Stringa

giovedì 21 febbraio 2008 - 10.26

w_t Profilo | Junior Member

Salve, il mio problema è fare il Parsing di un XML che ho in una Stringa,

contenuto della stringa:
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE XP SYSTEM "XP.dtd"> <XP> <Start> <Name>MyMame</Name> <Num>321</Num> <Ip>192.168.0.10</Ip> <List> <Param> <Name>Msg</Name> <Value>a</Value> </Param> </List> </Start> </XP>

come posso fare per interrogare ad esempio:
il nodo <Name> su <Start> ed estrarre il suo valore ???
il nodo <Name> su <Param> su <List> ed estrarre il suo valore ???

e per ultimo,

come devo fare per generare una stringa come questa ma inserire i Valori che decido io ???

mi potete dare una mano ???

luigidibiasi Profilo | Guru

Puoi generarti un oggetto XmlDocument dalla stringa utilizzando il metodo loadXml

XmlDocument myXml = new XmlDocument();
myXml.loadXml(stringaXml);

Dopo puoi utilizzare gli elementi del namespace xml per accedere al dom creato in memoria dalla stringa.

>come posso fare per interrogare ad esempio:
>il nodo <Name> su <Start> ed estrarre il suo valore ???
>il nodo <Name> su <Param> su <List> ed estrarre il suo valore ???

Utilizzi l'oggetto XmlNodeList che ti fai ritornare dall'oggetto myXml con il metodo getElementsByTagName. Prima di tutto ti fai ritornare Start

XmlNodeList startTag = myXml.getElementsByTagName("Start")

Essendo una lista di un solo elemento (per il codice xml che hai scritto) recuperi direttamente il primo

XmlElement StartE = startTag[0];

Poi su startE richiami getElementsByTagName("Name");

e recuperi il primo elemento.

XmlElement nameE = startE.getElementsByTagName("Name")[0];

Su nameE puoi interrogarne il contenuto.

Puoi anche farti ritornare tutti i tag Name però poi non ricordo come si accede al padre per capire se è figlio di Start o di Param.

> come devo fare per generare una stringa come questa ma inserire i Valori che decido io ???
> mi potete dare una mano ???

Ti devi creare il DOM in memoria. Accedi poi alla proprietà innerText o innerXml che contengono la stringa con il codice XML



Luigi Di Biasi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5