Necesito convertir un CSV en un documento XML. Los ejemplos que he visto hasta ahora muestran cómo hacer esto con un número fijo de columnas en el archivo CSV.Convertir archivo CSV a XML
tengo esto hasta ahora, el uso de LINQ:
String[] File = File.ReadAllLines(@"C:\text.csv");
String xml = "";
XElement top = new XElement("TopElement",
from items in File
let fields = items.Split(';')
select new XElement("Item",
new XElement("Column1", fields[0]),
new XElement("Column2", fields[1]),
new XElement("Column3", fields[2]),
new XElement("Column4", fields[3]),
new XElement("Column5", fields[4])
)
);
File.WriteAllText(@"C:\xmlout.xml", xml + top.ToString());
Esto es por una cantidad fija de columnas, pero mi CSV tiene un número diferente de columnas en cada línea.
¿Cómo encajaría algún tipo de bucle en esto, dependiendo de cuántas palabras (columnas) hay en cada línea del .CSV?
Thnx
Bastante cerca. Pero necesito dividir cada palabra en cada línea separada por a; Por lo tanto, la salida XML sería algo como esto:-
palabra palabra -
palabra -
palabra palabra palabra palabra casi lo tenía con el código que he publicado, pero sólo me dieron la primera palabra de cada línea.Entonces, necesito agregar algún tipo de bucle, que agregue un elemento Columna para cada palabra en cada línea separada por a; –
Soeren
@Soeren: ¿No es eso lo que hace mi solución? He agregado un ejemplo para aclarar. – dtb
Esto funciona genial. La parte line.Split (';') no estaba en el primer ejemplo, e intenté agregarla yo mismo. Simplemente no sabía cómo agregarlo. Necesito estudiar esto de LINQ un poco más. Gracias por tu ayuda. – Soeren