Il modo migliore per ottenere una stringa delimitata da virgole in formato XML?
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?
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 ...