Webpage xml

sabato 07 gennaio 2012 - 23.05
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010

riccardolore Profilo | Newbie

Salve a tutti, spero di non aver sbagliato sezione...
Sto uscendo pazzo con questa cosa, spero possiate aiutarmi..
Allora io ho una pagina web come questa: http://api.filesonic.com/link?method=getDownloadLink&u=146878&p=146878&ids=4228775175,0756

Praticamente devo sviluppare un applicazione in vb.net che mi permetta di analizzare questo documento xml e ottenere i valori dei vari nodi.
Ho tentato in tutti modi di scaricare il documento o cose simili ma continuo a scaricare stringhe di testo inutili: {"FSApi_Link":{"getDownloadLink":{"response":{"links":{"0":{"id":"0756.xml","status":"NOT_AVAILABLE"},"4228775175":{"id":4228775175,"status":"AVAILABLE","filename":"0756 - Naruto Shinobi Retsuden JPN.rar","url":"http:\/\/s69.filesonic.it\/apidownload\/4228775175_42742_2535519115_0_7141325974353?username=folio-werbedesign%40web.de&password=146878"}}},"status":"success"}}}


cioè mi toglie la codifica xml e mi trasforma tutta la pagina web in una stringa.
Non riuscendo ad analizzare il documento xml dal web ho provato a salvarmelo in locale ma continuo ad avere questi problemi.
Help vi prego!

Jeremy Profilo | Guru

Ciao Riccardo.
Credo che questa parte
links":{"0":{"id":"0756.xml","status":"NOT_AVAILABLE"},"
abbia un suo perchè.

Facci sapere...
Ciao

riccardolore Profilo | Newbie

no ma lascia perdere quella roba li...questo problema lo fa con qualsiasi documento xml a prescindere.

Jeremy Profilo | Guru

Ciao Riccardo.
>no ma lascia perdere quella roba li...questo problema lo fa con
>qualsiasi documento xml a prescindere.
Fatto sta che quel link, non restituisce una pagina xml.
Ad ogni modo ... forse sarebbe utile vedere il codice che usi per recuperare i documenti XML
Facci sapere...
Ciao

riccardolore Profilo | Newbie

grazie per la risposta...
lì dice: "Il file XML specificato apparentemente non ha un foglio di stile associato. L'albero del documento è mostrato di seguito."

Ma io veramente non ho idea di come fare per fare dei controlli xml con vb.net ho cercato su internet ma non ho trovato niente che funzionasse e facesse al caso mio.
quella pagina lì è in xml, se vedi il tipo di pagina è "text/xml". IO ho bisogno di fare dei controlli sul valore di quei nodi.

Ad esempio se prendo un altra pagina come questa : http://api.filesonic.com/link?method=getDownloadLink&u=146878&p=146878&ids=syRR3wM
qui non da nessun errore strano, ma come faccio a fare dei controlli sui nodi?

Se potevate aiutarmi con il codice... =(

Jeremy Profilo | Guru

Ciao Riccardo.
Scusa la mia ignoranza .... ma cliccando sul link che hai postato, io non vedo nessuna pagina web.
Mi restituisce lo stesso tipo di stringa che hai indicato nel primo post.
Di per se, recuperare il valore dei nodi da un file contenente una struttura xml, non è difficile .... il .Net Framework mette addirittura a disposizione delle classe addatte a questo tipo di necessità.
Fino ad adesso però .... non sono ancora riuscito a capire come fai a recuperare questo file .xml ne dove trovarlo.

Facci sapere...
Ciao

riccardolore Profilo | Newbie

devi cliccare quel link con firefox... se usi IE salva in automatico il file con quella stringa strana..
usando firefox se apri il link si apre e ti fa vedere l'albero xml e facendo salva con nome e mettendo xml sempre con firefox otteni il file xml perfetto..
però non so come fare con vb.net..
Vabbè a parte di tutto, quello che sto cercando di fare è un applicazione che gestisca questa roba qui:

http://api.filesonic.com/l#apioutputexemples_xml

Leggendo come ricevere l'xml dice "To receive XML when calling the API, you should add the parameter "format=xml" or send the HTTP header "Accept: text/xml" "

Mi riesci ad aiutare?

Jeremy Profilo | Guru

Ciao Riccardo.
Ora sono fuori ... stasera gli do un occhio
Ti faccio sapere....
Ciao

riccardolore Profilo | Newbie

Guardato niente?...

Jeremy Profilo | Guru

Ciao Riccardo.
Ci ho guardato adesso e, a dir la verità, non mi sembra essere un file xml .... anche se la formattazione lo fa sembrare.
Ad ogni modo, non vedo un grosso problema .... nel senso che hai comunque le parentesi graffe che delimitano i "pseudonodi" dello "pseudoalbero"
Voglio dire .... i valori che ti servono li puoi recuperare comunque anche con il tipo di formattazione in questo modo.
Basta lavorare un pò di RegularExpression ..... l'importante è capire se il tuo obbiettivo finale è recuperare quelle informazioni oppure ti serve dell'altro.
Rimango comunque a disposzione per ulteriori info

Facci sapere....
Ciao

riccardolore Profilo | Newbie

ciao, grazie della risposta!
SI a me serviva solo recuperare i dati fra i vari nodi, nient'altro...

Jeremy Profilo | Guru

Ciao Riccardo.
Ci lavoro un pò e ti faccio sapere .... comunque entro sera
Ciao

Jeremy Profilo | Guru

Ciao Riccardo.
Guarda questo codice.
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
L'ho provato ed a me funziona.
Attenzione che il pattern della RegularExpression l'ho costruito per ottenere le informazioni dalla risposta data dal link inserito nel codice, quindi ..... è possibile che, per altre risposte, si debba modificare il pattern.
Pertanto .... studiati bene le RegularExpression perchè potrebbero servirti in futuro.
Rimango comunque a disposizione per ulteriori info.

Facci sapere...
Ciao

riccardolore Profilo | Newbie

Ti ringrazio davvero tanto!!! Solo che io non conosco le Regex...non le ho mai capite :(
Grazie x il codice! Ero riuscito cmq ad aggiustarmi in qualche modo nel frattempo, ma il tuo codice è migliore grazie ;)

riccardolore Profilo | Newbie

Io ho letto un sacco di roba sulle regex...non riesco a capire come funzionano..Potresti aiutarmi a capire come funzionano le regex?

Jeremy Profilo | Guru

Ciao Riccardo.
>Io ho letto un sacco di roba sulle regex...non riesco a capire
>come funzionano..Potresti aiutarmi a capire come funzionano le
>regex?
Ci posso provare ... comincia a dare un occhio a questi link:
http://www.regular-expressions.info/tutorial.html
http://totemslair.org/guide/viewchapter.php?guida=vb&id=93
dovrebbero essero un buon inizio, poi .... chiedi pure.

Facci sapere...
Ciao

riccardolore Profilo | Newbie

ma se io avessi una stringa come questa:

2012-05-04 14:30:12

come devo fare e perchè, per ottere i valori della data e ora?

Jeremy Profilo | Guru

Ciao Riccardo
E' un pò lungo il discorso .....
Cominciamo dalle più semplici ... provo a spiegartele
Per esempio, questo pattern:
("(?<type>(?<="":{""type"":"")\w+)
ti restitusce il valore di type (free) senza includere type(testuale).
Come vedi nella guida che ti ho indicato
- (?<nome>expr) : cattura l'espressione "expr" e le assegna il nome "nome" ..... quindi ho scritto (?<type> perchè voglio dare il nome "type" al risultato ottenuto con l'espressione (?<="":{""type"":"")\w+)
- (?<=expr) : continua il confronto solo se l'espressione a sinistra corrisponde a quella data ... quindi ho scritto (?<="":{""type"":"")etc.... perchè il valore che voglio ottenere si trova a destra di "type":
- \w : un carattere alfanumerico o un underscore (comprende anche caratteri accentati) .... quindi ho scritto \w perchè il valore che voglio ottenere è composto solo da lettere
+ : una o più corrispondenze .... quindi ho scritto \w+ perchè il valore che voglio ottenere è costituito da tante lettere(non so quante) e sicuramente almeno da una lettera.

Come ti dicevo non è semplicissimo da spiegare bisogna che dici cosa esattamente non riesci a fare e mostrare il pattern da te costruito per capire dove sbagli.

Facci sapere...
Ciao

riccardolore Profilo | Newbie

Grazie della risposta..mi sembra di cominciare a capire come funziona...cmq non è una cosa semplicissima..
Sono riuscito a fare funzionare il pattern! ora me lo studio per bene ste regex!
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5