2010-08-18 5 views
0

J'ai besoin de convertir un XML en un tableau en utilisant asp.net.comment convertir un XML en un tableau dans asp.net

J'ai essayé de chercher sur le Web mais je n'ai pas trouvé la bonne solution.

Quelqu'un peut-il me s'il vous plaît aider avec ce

Merci,
Alloi

+1

dans un tableau de quoi, exactement? Votre question est très vague en ce moment. –

+0

'byte [] array = Encoding.UTF8.GetBytes (xmldocument.OuterXml);' - Je suppose que ce n'est pas ce que vous voulez, mais comme Jon le dit, c'est un peu difficile à savoir en fonction de votre question. –

+0

J'ai un XML construit. Maintenant, je voudrais prendre ces éléments et les convertir en un tableau d'éléments afin que je puisse les utiliser dans d'autres étapes Quelque chose comme ça que j'ai trouvé dans php http://www.bin-co.com/php/scripts/xml2array/ – Alloi

Répondre

1

Je trouve LinqToXML utile dans ces circonstances. J'ai un document XML très simple:

<?xml version="1.0" encoding="utf-8" ?> 
<People> 
    <Person> 
    <id>1</id> 
    <name>Dave</name> 
    </Person> 
    <Person> 
    <id>2</id> 
    <name>Pete</name> 
    </Person> 
    <Person> 
    <id>3</id> 
    <name>Marie</name> 
    </Person> 
</People> 

Et le code suivant qui va le transformer en un tableau d'objets:

FileStream file = new FileStream("data.xml", FileMode.Open); 

XDocument xmldoc = XDocument.Load(file); 

var people = (from p in xmldoc.Descendants("Person") 
       select new 
       { 
       ID = p.Element("id").Value, 
       Name = p.Element("name").Value 
       }).ToArray(); 

foreach (var person in people) 
{ 
    Console.WriteLine(person.Name); 
} 
+0

david - gentil. fonctionne bien avec la structure dans le scénario. autant que je l'ai dit dans ma petite chanson ci-dessous, si vous connaissez la structure, vous êtes prêt. c'est la structure inconnue qui cause le problème que je ressens. mais belle réponse ... –

+0

Merci beaucoup! :) – Alloi

+0

Merci @jim, et aucun problème @Alloi. – DavidGouge

0

Alloi - je pense qu'en raison de la complexité inhérente aux structures XML, cela dépendra beaucoup du XML lui-même. ce que je dis, c'est qu'une solution générique peut être très difficile à faire preuve de bombe, alors qu'une solution à une structure «connue» peut être assez simple. le sérialiseur peut vous permettre de l'enregistrer sur ToList() ou similaire mais au-delà, c'est un cas de chevaux pour des sources je pense. :)

jim

[modifier ] - lien peut être utile: http://www.c-sharpcorner.com/UploadFile/chauhan_sonu57/SerializingObjects07202006065806AM/SerializingObjects.aspx

aussi - un lien peu agréable montrant comment convertir xml-> JSON en C# : http://www.phdcc.com/xml2json.htm

0

Si vous avez un XSD auquel le XML se réfère, cela peut probablement être un point de départ sur la mise en œuvre de tableau (ou liste).

0

... Une façon peut vous aider à

  1. Lire xml en jeu de données.
  2. itérez le jeu de données sur la base des lignes de table et ajoutez chaque entité de ligne à une liste.
  3. afficher la liste sous forme de tableau ou de liste elle-même.
0

Je ne sais pas s'il y a une classe .NET qui exécute cette action directement ou non, mais dans le cas où il n'y est que vous avez 2 options:

1. Chargez le code XML dans l'ensemble de données, puis faites une boucle dans l'ensemble de données et définissez les éléments du tableau.

2. Obtenez le nombre de noeuds XML, puis bouclez le fichier XML et lisez chaque élément du noeud, puis placez-le dans le tableau.

Espérons que cela est utile

Questions connexes