Domanda

Uso di VB.net (.net 2.0) Ho una stringa in questo formato:

record1_field1,record1_field2,record2_field3,record2_field1,record2_field2,

ecc ...

Mi chiedo quale sia il modo migliore (più semplice) per ottenere questo in un XML?

Posso pensare a 2 modi:

Metodo 1: - usa split per ottenere gli oggetti in un array - passa in rassegna l'array e crea una stringa xml usando la concatenazione

Metodo 2: - usa split per ottenere gli oggetti in un array - scorre attraverso l'array per creare un datatable - usa writexml per generare xml dal datatable

Il primo sembra abbastanza semplice ma richiederebbe più logica per costruire la stringa.

Il secondo sembra più nitido e più facile da capire.

Ci sono altri modi per farlo?

È stato utile?

Soluzione

Vorrei fare qualcosa del genere:


XmlDocument doc = new XmlDocuent();

string[] data = csv.split(',');

XmlNode = doc.CreateElement("root");
foreach(string str in data)
{
    XmlNode node = doc.CreateElement("data");
    node.innerText = str;
    root.AppendChild(node);
}
Console.WriteLine(doc.InnerXML);

Dovrebbe restituire qualcosa del genere:


<root>
    <data>field 1</data>
    <data>field 2</data>
    <data>field 3</data>
</root>

Dovresti annidare i loop / tokenizzare in modo leggermente diverso per i dati nidificati ...

Altri suggerimenti

Invece di concatenare le stringhe, potresti probabilmente creare un XmlDocument e riempirlo con gli oggetti XmlElement e XmlAttribute appropriati dalla tua stringa ... Quindi, scrivi l'oggetto XmlDocument ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top