2009-10-15 6 views
0

J'utilise VSTS 2008 + C# + .Net 3.5 pour convertir le fichier XML d'entrée ci-dessous en format de destination. Il peut y avoir un nombre arbitraire d'éléments Image. Et les nouvelles informations sur les prix sont fournies dans la liste.Problème de conversion de fichier XML

Un moyen rapide d'implémenter la fonction de conversion?

format source,

<?xml version="1.0"?> 
<Metadata version="1"> 
    <Owner>George</Owner> 
    <Image> 
    <x>100</x> 
    </Image> 
    <Image> 
    <x>200</x> 
    </Image> 
</Metadata> 

format de destination,

<?xml version="1.0"?> 
<Metadata version="1"> 
    <Owner>George</Owner> 
    <Image> 
    <x>100</x> 
    <Price>200</Price> 
    </Image> 
    <Image> 
    <x>100</x> 
    <Price>300</Price> 
    </Image> 
</Metadata> 
+0

Merci pour vos conseils, Mark! – George2

Répondre

3

Tout simplement: sélectionnez tous <Image> nœuds et ajouter un nouveau nœud enfant <Price> les:

XmlDocument xmldoc = new XmlDocument(); 
xmldoc.Load("your-filename-here.xml"); 

XmlNodeList imageList = xmldoc.SelectNodes("/Metadata/Image"); 

foreach(XmlNode node in imageList) 
{ 
    XmlElement priceElement = xmldoc.CreateElement("Price"); 
    priceElement.InnerText = "300"; // or whatever it is 

    node.AppendChild(priceElement); 
} 

xmldoc.Save("your-new-xml-file-name-here.xml"); 

Cela devrait fais-le, j'espère!

Marc

+1

Je travaillais de la même façon, c'est une façon simple de le faire – Abel

+0

"c'est une façon simple de le faire" - qu'est-ce que c'est? – George2

+1

@Abel: J'aime bien - je n'aime pas la "magie vaudou noire" où vous ne voyez pas ce qui se passe :-) –

Questions connexes