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#的新手,我需要帮助。
这是非常基本的东西:
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());
这是我现在的文件