C#新手中的XML到CSV

本文关键字:CSV XML 新手 | 更新日期: 2023-09-27 18:00:13

大家好,我需要这个xml数据的帮助。

<?xml version="1.0" encoding="utf-8"?>
<xml-data xmlns="http://www.lucom.com/ffw/xml-data-1.0.xsd">
<form>catalog://Unternehmen/ust/ZM_Formular_online</form>
<instance>
<dataset id="tbl_ZM_tabelle">
  <datarow>
    <element id="knre1">AT</element>
    <element id="knre2">U18713701</element>
    <element id="umsatz_art">0</element>
    <element id="betrag">7605</element>
    <element id="zeile_m">1</element>
  </datarow>

我想通过使用knr1、knr2和"betrag"id来编写csv数据。它总是一样的名字。它应该看起来像这个

在;U18713701;7605

我是c#的新手,我需要帮助。

C#新手中的XML到CSV

这是非常基本的东西:

using System.Xml.XPath;
using System.Xml.Linq;
using System.IO;
XDocument xdoc = XDocument.Load("test.xml");
StringBuilder csv = new StringBuilder();
foreach (XElement datarow in xdoc.Root.XPathSelectElements("dataset/datarow"))
{
    string knre1 = datarow.Elements("element").Where(i => i.Attribute("id").Value.Contains("knre1")).First().Value;
    string knre2 = datarow.Elements("element").Where(i => i.Attribute("id").Value.Contains("knre2")).First().Value;
    string betrag = datarow.Elements("element").Where(i => i.Attribute("id").Value.Contains("betrag")).First().Value;
    csv.AppendLine(knre1 + "," + knre2 + "," + betrag);
}
File.WriteAllText("cvsFile.csv", csv.ToString());
    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        XDocument xdoc = XDocument.Load("C:''Users''edvazubi''Desktop''ZM05.2015.xml");
        StringBuilder csv = new StringBuilder();
        foreach (XElement datarow in xdoc.Root.XPathSelectElements("instance/dataset/datarow"))
        {

            string knre1 = datarow.Elements("element").Where(i => i.Attribute("id").Value.Contains("knre1")).First().Value;
            string knre2 = datarow.Elements("element").Where(i => i.Attribute("id").Value.Contains("knre2")).First().Value;
            string betrag = datarow.Elements("element").Where(i => i.Attribute("id").Value.Contains("betrag")).First().Value;

            csv.AppendLine(knre1 + "," + knre2 + "," + betrag + "L");
        }
        File.WriteAllText("C:''Users''edvazubi''Desktop''CSVFile.csv", csv.ToString());

这是我现在的文件