Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# s(Path.Combine(basePath,“../../…”,@“input.csv”); var xmlTree=新的XElement(“TopElement”); foreach(行中的var行) { AddContentForEachLine(行,参考xmlTree); } Save(Path.Combine(basePath,../../....,@“output.xml”); } } }_C# - Fatal编程技术网

C# s(Path.Combine(basePath,“../../…”,@“input.csv”); var xmlTree=新的XElement(“TopElement”); foreach(行中的var行) { AddContentForEachLine(行,参考xmlTree); } Save(Path.Combine(basePath,../../....,@“output.xml”); } } }

C# s(Path.Combine(basePath,“../../…”,@“input.csv”); var xmlTree=新的XElement(“TopElement”); foreach(行中的var行) { AddContentForEachLine(行,参考xmlTree); } Save(Path.Combine(basePath,../../....,@“output.xml”); } } },c#,C#,运行代码后,结果如下: A. B C D E F G H 参考资料: 将元素、属性和节点添加到XML树(C#)| Microsoft文档 到目前为止,您尝试了什么?什么不起作用?请展示一些源代码…发布您到目前为止的代码,并指出您认为它不起作用的原因。XML块不是很有用。您应该解释您的输入格式和所需的输出格式,以及您遇到困难的地方,或者这可能会被关闭。我们可以看到CSV中的几行和标题吗?这可能是复制/粘贴错误,但这甚至不是有效的XML(查看到目前为止您尝试了什么?什么不起作用?请展示一些源代码

运行代码后,结果如下:


A.
B
C
D
E
F
G
H
参考资料:

将元素、属性和节点添加到XML树(C#)| Microsoft文档

到目前为止,您尝试了什么?什么不起作用?请展示一些源代码…发布您到目前为止的代码,并指出您认为它不起作用的原因。XML块不是很有用。您应该解释您的输入格式和所需的输出格式,以及您遇到困难的地方,或者这可能会被关闭。我们可以看到CSV中的几行和标题吗?这可能是复制/粘贴错误,但这甚至不是有效的XML(查看
到目前为止您尝试了什么?什么不起作用?请展示一些源代码…发布您到目前为止的代码,并指出您认为它不起作用的原因。XML块不是很有用。您应该解释您的输入格式和所需的输出格式,以及您遇到的困难,或者这可能会被关闭。我们可以看到一个CSV中的几行和标题?可能是复制/粘贴错误,但这甚至不是有效的XML(请参见

        <CARS>
       <NAME="amk">
         <CAR>
            <id>A1</id>
            <start>12.00</start>
            <end>11.59</end>
            <place>PARK</place>
            <day>DAY</day>
            <letter>abc</letter>
            <number>77</number>
         </CAR>

         <CAR>
            <id>A2</id>
            <start>01.00</start>
            <end>12.59</end>
            <place>garden</place>
            <day>night</day>
            <letter>abc</letter>
            <number>27</number>
            <length>2.15M</length>
            <amount>12</amount>
         </CAR>

         <CAR>...</CAR>

         <CAR>...</CAR>

        <NAME="bbk">
         <CAR>
            <id>B1</id>
            <start>23.59</start>
            <end>11.59</end>
            <place>Rooftop</place>
            <day>DAY</day>
            <letter>abc</letter>
            <number>34</number>
         </CAR>

         <CAR>
            <id>B4</id>
            <start>01.00</start>
            <end>02.00</end>
            <place>garden</place>
            <day>Day</day>
            <letter>abc</letter>
            <number>27</number>
            <length>2.00M</length>
            <amount>2</amount>
         </CAR>

             <CAR>...</CAR>

             <CAR>...</CAR>


         </NAME>
    </CARS>



public static void ConvertCsvToXML()
        {
            String[] FileContent = File.ReadAllLines(@"C:\test.csv");
            String XMLNS = "";
            XElement Inv = new XElement("CARS",

            from AREA in FileContent
            let fields = AREA.Split(',')
            select new XElement("Area", fields[0]),

            from CAR in FileContent
            let fields = CAR.Split(',')
            select new XElement("Car",
            new XElement("id", fields[1]),
            new XElement("start", fields[2]),
            new XElement("end", fields[3]),
            new XElement("place", fields[4]),
            new XElement("day", fields[5]),
            new XElement("letter", fields[6]),
            new XElement("number", fields[7]),
            new XElement("length", fields[8]),
            new XElement("amount", fields[9])
            )
            );
            File.WriteAllText(@"C:\testCSV.xml", XMLNS + Inv.ToString());
        }
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;

namespace TestProgram
{
    static class Program
    {
        // NET4 has this in System.IO.File
        private static IEnumerable<string> ReadAllLines(string fname)
        {
            using (var r = new StreamReader(fname))
            {
                var line = r.ReadLine();
                while (null != line)
                {
                    yield return line;
                    line = r.ReadLine();
                }
            }
        }

        private static string[] CsvFields(string line, char[] delim)
        {
            return null==line 
                ? null 
                : line.Split(delim, StringSplitOptions.None);
        }

        public static IEnumerable<T> ProjectCsv<T>(this IEnumerable<string> lines, char[] delim, Func<string[], T> projection)
        {
            return lines.Select(l => projection(CsvFields(l, delim)));
        }

        public static IEnumerable<T> ProjectCsv<T>(this IEnumerable<string> lines, char[] delim, Func<string[], int, T> projection)
        {
            return lines.Select((l, i) => projection(CsvFields(l, delim), i));
        }

        static void Main(string[] args)
        {
            foreach (var filename in args)
            {
                var csv = ReadAllLines(filename);

                var delimiter = new[] { '\t' };
                var headers = CsvFields(csv.First(), delimiter);

                Console.WriteLine(
                    new XDocument(new XElement("CSV",
                        new XAttribute("source", filename),
                        csv.ProjectCsv(delimiter, (fields, linenum) =>
                            new XElement("Line",
                                new XAttribute("number", linenum),
                                headers.Select((caption, index) => new XElement(caption, new XText(fields[index])))
                    ))))
                );
            }

            Console.WriteLine("Done, press a key");
            Console.ReadKey();
        }
    }
}
Program.exe E:\test.csv E:\test2.csv
aap noot    mies
1   2   3
2   3   4
3   4   5
4   5   6
5   6   7
6   7   8
<CSV source="e:\test.csv">
  <Line number="0">
    <aap>aap</aap>
    <noot>noot</noot>
    <mies>mies</mies>
  </Line>
  <Line number="1">
    <aap>1</aap>
    <noot>2</noot>
    <mies>3</mies>
  </Line>
  <Line number="2">
    <aap>2</aap>
    <noot>3</noot>
    <mies>4</mies>
  </Line>
  <Line number="3">
    <aap>3</aap>
    <noot>4</noot>
    <mies>5</mies>
  </Line>
  <Line number="4">
    <aap>4</aap>
    <noot>5</noot>
    <mies>6</mies>
  </Line>
  <Line number="5">
    <aap>5</aap>
    <noot>6</noot>
    <mies>7</mies>
  </Line>
  <Line number="6">
    <aap>6</aap>
    <noot>7</noot>
    <mies>8</mies>
  </Line>
</CSV>
Done, press a key
A,B,C
D,E,F
G,H