97 messaggi dal 25 gennaio 2007
Io ho un file Xml, così strutturato.
<dataset>
-<nodo>
     <datonodo1>...</datonodo1>
     <datonodo2>...</datonodo2>
     <datonodo3>...</datonodo3>
     <datonodo4 id="1">...</datonodo4>
     <datonodo4 id="2">...</datonodo4>
     <datonodo4 id="3">...</datonodo4>
</nodo>
-<nodo>
     <datonodo1>...</datonodo1>
     <datonodo2>...</datonodo2>
     <datonodo3>...</datonodo3>
     <datonodo4 id="1">...</datonodo4>
     <datonodo4 id="2">...</datonodo4>
     <datonodo4 id="3">...</datonodo4>
</nodo>
-<nodo>
     <datonodo1>...</datonodo1>
     <datonodo2>...</datonodo2>
     <datonodo3>...</datonodo3>
     <datonodo4 id="1">...</datonodo4>
     <datonodo4 id="2">...</datonodo4>
     <datonodo4 id="3">...</datonodo4>
</nodo>
</dataset>

Io dovrei leggere datonodo4 selezionando di volta in volta un id diverso, io ho provato utilizzando questo codice:
Dim info = nodo("datonodo4").innertext
Ma in questo modo leggo solo datonodo4 con id=1. Ho provato con altri metodi tipo Attributes o GetAttributes ma con scarsi risultati, con questi metodi recupero il valore dell'id. Io invece vorrei poter specificare il valore dell'id in modo tale da poter visualizzare il contenuto di datonodo4.
RobyT83 wrote:
Io dovrei leggere datonodo4 selezionando di volta in volta un id diverso, io ho provato utilizzando questo codice:
Dim info = nodo("datonodo4").innertext

che non essendo tipizzato, non si capisce bene di che tipo sia nodo nè info.
Ma in questo modo leggo solo datonodo4 con id=1. Ho provato con altri metodi tipo Attributes o GetAttributes ma con scarsi risultati, con questi metodi recupero il valore dell'id. Io invece vorrei poter specificare il valore dell'id in modo tale da poter visualizzare il contenuto di datonodo4.

hai provato con XPath?
poi, vuoi leggere tutti i nodi di quel tipo, beccarne uno a caso, prendere quello con l'ID che ti serve, o cos'altro?

Daniele Bochicchio | ASPItalia.com
I libri su HTML5, WP7, ASP.NET, VB, C#, Entity Framework
Senior Software Architect@5DLabs.it
Microsoft Regional Director for Italy
97 messaggi dal 25 gennaio 2007
Daniele Bochicchio ha scritto:
che non essendo tipizzato, non si capisce bene di che tipo sia nodo nè info.


nodo è di tipo XmlNode
nodo = doc.DocumentElement

per gli altri nodi senza attributo id io li ho letti in questo modo:
Dim agenzia_id = nodo("agenzia_id").InnerText


hai provato con XPath?
poi, vuoi leggere tutti i nodi di quel tipo, beccarne uno a caso, prendere quello con l'ID che ti serve, o cos'altro?


Con Xpath non ho provato, anche se avevo letto in giro per libri e per internet di questa possibilità, perché è la prima volta che mi imbatto nella lettura di file xml e non avveo ben chiaro il funzionamento.

Poi io vorrei leggere un nodo con un determinato ID.
RobyT83 ha scritto:
io vorrei leggere un nodo con un determinato ID.


Allora è matematico: XPath è la soluzione al tuo problema!

La sintassi dovrebbe essere una cosa di questo tipo:

//datonodo4[@id='4']


Su XPath c'è un sacco di documentazione online (basta una ricerchina); puoi partre ad esempio da questo tutorial: http://www.w3schools.com/xpath/default.asp

Un'ultima nota: evita di usare l'attributo "id" a meno che questo non sia univoco all'interno dell'intero documento.

HTH

Matteo Casati
GURU4.net
78 messaggi dal 01 febbraio 2007
m.casati ha scritto:

Un'ultima nota: evita di usare l'attributo "id" a meno che questo non sia univoco all'interno dell'intero documento.


Perchè? viene contata come in una pagina html?

per RobyT83:
Se vuoi io avevo improntato una classe per leggere degli xml a schema fisso, se vuoi te lo invio..

Il nucleo della conoscenza è questo: se la possiedi, applicala; se non la possiedi, confessa la tua ignoranza. (Confucio)
97 messaggi dal 25 gennaio 2007
Ok adesso mi andrò a documentare su Xpath
97 messaggi dal 25 gennaio 2007
dubbio ha scritto:

per RobyT83:
Se vuoi io avevo improntato una classe per leggere degli xml a schema fisso, se vuoi te lo invio..


Ti ringrazio ma preferisco sbatterci la testa per benino
78 messaggi dal 01 febbraio 2007
Bravo..Fai bene..

Il nucleo della conoscenza è questo: se la possiedi, applicala; se non la possiedi, confessa la tua ignoranza. (Confucio)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC