Lire/traiter du XML

cs_Dnx Messages postés 16 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 16 juillet 2007 - 15 mars 2005 à 09:15
cs_Dnx Messages postés 16 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 16 juillet 2007 - 16 mars 2005 à 09:21
bonjour je débute sous vb.net

j'ai un petit blocage au niveau du XML/VB.NET/ASP.NET



j'ai une méthode qui retourne un STRING qui en fait a une arborescence XML

je dois (d'après mes recherches) l'afficher dans une DATAGRID mais je ne sais pas comment m'y prendre



pour l'instant je l'affiche en chargant physiquement une fichier XSL
mais avec ceci, je ne sais pas traiter les données ou mettre en forme
correctement



merci d'avance



bien à vous.

6 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 mars 2005 à 13:45
t'as essayer de le mettre dans un dataset ?



dim ds as new dataset("name")

ds.loadFromXml(fichierxml)



dg.datasource = ds

dg.databind()



pour le ds.loafFromXml() je dis au pif, je connais pas par coeur le
framework, mais regarde via l'intelissens tu as une fonction qui te
permet de charger un dataset a partir de ton xml. Pour cela il faut que
celui ci soit conforme, et si en place il a un schema (xsd) ce serait
encore mieux :)




<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
cs_Dnx Messages postés 16 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 16 juillet 2007
15 mars 2005 à 13:56
oui j'ai un XSD mais je n'y comprends rien a dataset, datagrid etc..



au début je récuperais ma chaine (format xml) dans une variable et je
chargeais un XSL puis en faisant un transformnode j'affiche le contenu
dans un labe..

on m'a dit que c'est une méthode "brouillon" et qu'il serait préférable
de travailler avec des datagrid, datalist, dataset mais je n'y
comprends rien :/



j'ai a ma disposition un XSD et j'ai un XML a afficher dans un datagrid et je coince :'(



ps : j'ai essayer ton code mais pour le dataset, il n'a aucune méthode
susceptible de lire un xml mise a part le "readxml" mais il me dit que
la chaine est tro longue (a mon avis c'est un nom de fichier qu'il faut
mettre pour cette méthode)



merci



bien à toi.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 mars 2005 à 14:24
Si tout fonctionne comme tu le veux avec la méthode de ton xsl, laisse donc cette méthode.



Tu n'as aucun interet à passer par un datagrid, un datagrid te pond du
code HTML lourd, il est serviable car il a des fonctionnalités avancé,
mais si tu n'as pas besoin d'éditer, de trier, de paginer tes données,
reste donc avec ta solution.


Sinon essaye ca :

Dim doc As New System.Xml.XmlDocument

doc.LoadXml("<tachaine>")

Dim sOut As System.IO.Stream

doc.Save(sOut)

Dim ds As New DataSet

ds.ReadXml(sOut, XmlReadMode.Auto)



J'ai pas testé, mais ca peut marcher ;)


<hr>
Cyril - MCP ASP.net

Webmaster de : Hoshimi.CodeS-SourceS.fr
0
cs_Dnx Messages postés 16 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 16 juillet 2007
15 mars 2005 à 14:29
En fait oui je dois éditer, travailler avec mes données
malheureusement, et c'est pour ca que je suis obliger par cas *** de
datagrid, dataset etc... :'(



j'ai tester ton code, il me renvoit ceci :



La valeur ne peut pas être null. Nom du paramètre : stream



et voici le code que j'ai taper :



Dim doc As New System.Xml.XmlDocument

doc.LoadXml(newFolio.bll_getResult)

Dim sOut As System.IO.Stream

doc.Save(sOut)

Dim ds As New DataSet

ds.ReadXml(sOut, XmlReadMode.Auto)



DataGrid1.DataSource = ds

DataGrid1.DataBind()



merci à toi en tout cas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 mars 2005 à 16:06
Ton fichier xml il provient d'ou ?



S'il vient d'une base de données, autant faire quelque chose de vraiment correcte dans la bdd en faisant une vrai table, etc...



Pour ce qui est de mon code, l'erreur est bizzarre ! t'as regardé avec le debugueur ce que ca dit ?

Il y a certainement des solutions a ton problème, mais je pense qu'il
vaut mieux repenser du début d'où proviennent tes données, car la
niveau perf, ca va etre horrible. Donc si tu peux mettre tes données
dans une bdd ce serait mieux.



Mais deja dit moi ce que c'est que ton xml, d'ou il vient etc...

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
cs_Dnx Messages postés 16 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 16 juillet 2007
16 mars 2005 à 09:21
en fait le XML vient d'un webservice

objet.méthodeDuWebService(parametre) = > cette fonction renvoit un XML

tout en se basant sur ce XSD :



<?xml version ="1.0" encoding= "UTF-8" ?>




[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# - ] <xs:schema xmlns:xs ="http://www.w3.org/2001/XMLSchema">






[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# -] <xs:simpleType name= " Guid_t ">






[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# -] <xs:restriction base ="xs:string">






<xs:pattern value= " [{][0-9A-F]{8}(-[0-9A-F]{4}){3}-[0-9A-F]{12}[}] " />



</xs:restriction>



</xs:simpleType>





[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# -] <xs:complexType name ="Folders_t">






[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# -] <xs:sequence minOccurs= " 0 " maxOccurs ="unbounded">





<xs:element name" Folder " type"Folder_t" />



</xs:sequence>



</xs:complexType>





[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# -] <xs:complexType name= " Folder_t ">






[mk:@MSITStore:C:\Documents%20and%20Settings\stagiaire9\Mes%20documents\Dnx-Archives\QITXWS14.chm::/getsubfolders_result.xsd# -] <xs:sequence minOccurs ="0" maxOccurs= " unbounded ">






<xs:element name ="Folders" type= " Folders_t " />



</xs:sequence>





<xs:attribute name ="OID" type= " Guid_t " use ="required" />




<xs:attribute name" Title " type"xs:string" use= " required " />



</xs:complexType>



- <!-- root element

-->






<xs:element name ="Folder" type="Folder_t" />



</xs:schema>

et je devrai traiter des données a l'intérieur de ce xml

bien à toi.
0
Rejoignez-nous