2009-06-30 7 views
0

J'ai passé une demi-journée à chercher une réponse à cette question et je suis de plus en plus frustré. Je travaille avec un service Web qui retourne un XmlNode comme réponse. Je voudrais pouvoir prendre la référence de données XML par le noeud et l'afficher avec une vue de grille de données. Est-ce que quelqu'un sait si c'est possible?Existe-t-il un moyen de prendre un XmlNode et d'afficher ses données dans une vue de grille de données?

J'utilise le code suivant:

  // submit command to webserver 
     XmlNode response = SubmitToWebserv((XmlElement)IssueNode, state.Get); 

     // create XML reader to read response 
     XmlReader reader = new XmlNodeReader(response); 

     // create a data table to hold response 
     DataTable dt = new DataTable(); 
     dt.ReadXmlSchema(reader); 

     // read data into data table 
     dt.ReadXml(reader); 

Il émet une exception: DataTable ne supporte pas l'inférence de schéma de Xml. La chose est, le schéma est inclus dans le XML référencé par la réponse ... Donc, je suis à perte.

Répondre

0

Je vous suggère d'essayer cela en utilisant DataSet au lieu de DataTable. Je ne sais pas si cela fonctionnera, mais il est logique que ce soit le cas. Le schéma peut avoir inclus plusieurs tables.

OTOH, le XmlNode a-t-il inclus un schéma?


Je vous recommande de regarder cela dans le débogueur. En particulier, surveillez le nœud sur lequel XmlReader est positionné. Je ne suis pas convaincu à 100% qu'il avancera comme vous voulez, de l'élément d'emballage, au schéma, puis aux données.

Aussi, est-il un élément enveloppant le schéma et les données:

<node> 
    <xs:schema/> 
    <data/> 
</node> 

Ou sont les éléments de schéma et de données des noeuds de premier niveau. Ce serait un fragment.

+0

Oui, le schéma est inclus dans le XmlNode. C'est pourquoi je suis un peu confus. –

+0

J'ai utilisé un DataSet à la place et j'ai pu afficher mes données. Je vous remercie. Maintenant, pour trouver une solution de contournement pour le service Web mal documenté du fournisseur. Merci pour l'aide StackOverflow! –

Questions connexes