CSV mit bestimmten Inhalt einer XML erstellen

  • WPF
  • .NET 5–6

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von FabiNew.

    CSV mit bestimmten Inhalt einer XML erstellen

    Ola erstmal (-:,

    ich frage mich wie eine Funktion aussehen würde bzw.
    wie sie aufgebaut wäre wenn man beispielsweise aus einer XML(die mehrere dieser "Document" Elemente besitzt) wie die unten hinterlegte,
    man jeweils eine CSV mit den Indexfeldern und ihren Values erstellen lässt.

    Die Indexfelder(Die Feldnamen die aus der XML gebraucht werden) sind in dem Fall hier:

    Name1, Projektleiter, Straße_Hausnummer, Geschaeftsvorfall, Rechnungsdatum, Volltext,
    Info, MWST, Bestellnummer, Belegdatum. Beziehungsweise alle die in diesem bereich eines Dokuments noch vorkommen könnten.

    Ich hoffe ich bin hier im richtigen Topic und schonmal vielen Dank für jede Hilfe <3.
    Spoiler anzeigen

    XML-Quellcode

    1. <Document Scheme="Einkauf" SchemeHash="C79860F0508A47865055770E0D269E30" ID="65202617D4FE11ECB8A2005056A67495">
    2. <Attributes>
    3. <BlobContent ID="65288A4FD4FE11EC8529005056A67495" Name="">
    4. <Property Value="Scan_0001.pdf" Name="XMLSrvBlobName"></Property>
    5. <Property Value="Scan_0001.pdf" Name="FileName"></Property>
    6. <Property Value="2" Name="index"></Property>
    7. <Property Value="1649940526" Name="FileTime"></Property>
    8. <Property Value="Scan_0001.pdf" Name="FULL_PATHNAME"></Property>
    9. <Property Value="application/pdf" Name="MimeType"></Property>
    10. <Property Value="117793" Name="Size"></Property>
    11. <Property Value="897D4F9748089B324B77FC94AAAC230D" Name="Hash"></Property>
    12. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_4386389754020397343_Scan_0001.pdf.e3.blob"></Reference>
    13. <Attributes>
    14. <NamedDV ID="65288A52D4FE11EC8529005056A67495" Name="INDEX">
    15. <Value Locale="de" Type="INTG" Plain="@2" Encoding="UTF-8">2</Value>
    16. </NamedDV>
    17. </Attributes>
    18. </BlobContent>
    19. <BlobContent ID="65264058D4FE11EC8529005056A67495" Name="">
    20. <Property Value="Mail_Original.eml" Name="XMLSrvBlobName"></Property>
    21. <Property Value="Mail_Original.eml" Name="FileName"></Property>
    22. <Property Value="1" Name="index"></Property>
    23. <Property Value="1649916349" Name="FileTime"></Property>
    24. <Property Value="Mail_Original.eml" Name="FULL_PATHNAME"></Property>
    25. <Property Value="text/rfc822" Name="MimeType"></Property>
    26. <Property Value="36092" Name="Size"></Property>
    27. <Property Value="9E08F71970AC83C3F39D46E1DD33E49A" Name="Hash"></Property>
    28. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_6365552760109824400_Mail_Original.eml.e3.blob"></Reference>
    29. <Attributes>
    30. <NamedDV ID="6526405BD4FE11EC8529005056A67495" Name="INDEX">
    31. <Value Locale="de" Type="INTG" Plain="@1" Encoding="UTF-8">1</Value>
    32. </NamedDV>
    33. </Attributes>
    34. </BlobContent>
    35. <BlobContent ID="652AAD36D4FE11EC8529005056A67495" Name="">
    36. <Property Value="Status.htm" Name="XMLSrvBlobName"></Property>
    37. <Property Value="Status.htm" Name="FileName"></Property>
    38. <Property Value="3" Name="index"></Property>
    39. <Property Value="1652694962" Name="FileTime"></Property>
    40. <Property Value="Status.htm" Name="FULL_PATHNAME"></Property>
    41. <Property Value="text/html" Name="MimeType"></Property>
    42. <Property Value="160065" Name="Size"></Property>
    43. <Property Value="6B723166C31476339EFEC8AC05D0EA25" Name="Hash"></Property>
    44. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_4942443749060394900_Status.htm.e3.blob"></Reference>
    45. <Attributes>
    46. <NamedDV ID="652AAD39D4FE11EC8529005056A67495" Name="INDEX">
    47. <Value Locale="de" Type="INTG" Plain="@3" Encoding="UTF-8">3</Value>
    48. </NamedDV>
    49. </Attributes>
    50. </BlobContent>
    51. <BlobContent ID="652B979BD4FE11EC8529005056A67495" Name="">
    52. <Property Value="Monitor.htm" Name="XMLSrvBlobName"></Property>
    53. <Property Value="Monitor.htm" Name="FileName"></Property>
    54. <Property Value="4" Name="index"></Property>
    55. <Property Value="1652694962" Name="FileTime"></Property>
    56. <Property Value="Monitor.htm" Name="FULL_PATHNAME"></Property>
    57. <Property Value="text/html" Name="MimeType"></Property>
    58. <Property Value="5989" Name="Size"></Property>
    59. <Property Value="25098FE11D43E3B3F05446095C4C4D71" Name="Hash"></Property>
    60. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_2163749074537757588_Monitor.htm.e3.blob"></Reference>
    61. <Attributes>
    62. <NamedDV ID="652B979ED4FE11EC8529005056A67495" Name="INDEX">
    63. <Value Locale="de" Type="INTG" Plain="@4" Encoding="UTF-8">4</Value>
    64. </NamedDV>
    65. </Attributes>
    66. </BlobContent>
    67. <BlobContent ID="65244481D4FE11EC8529005056A67495" Name="">
    68. <Property Value="Mail_0.pdf" Name="XMLSrvBlobName"></Property>
    69. <Property Value="Mail_0.pdf" Name="FileName"></Property>
    70. <Property Value="0" Name="index"></Property>
    71. <Property Value="1649916349" Name="FileTime"></Property>
    72. <Property Value="Mail_0.pdf" Name="FULL_PATHNAME"></Property>
    73. <Property Value="application/pdf" Name="MimeType"></Property>
    74. <Property Value="23975" Name="Size"></Property>
    75. <Property Value="7FB96556D286492534DCE36DB21E1FBC" Name="Hash"></Property>
    76. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_1009730034639068290_Mail_0.pdf.e3.blob"></Reference>
    77. <Attributes>
    78. <NamedDV ID="65244484D4FE11EC8529005056A67495" Name="INDEX">
    79. <Value Locale="de" Type="INTG" Plain="@0" Encoding="UTF-8">0</Value>
    80. </NamedDV>
    81. </Attributes>
    82. </BlobContent>
    83. <NamedDV ID="3D2CADA5939326A726067D93C448C6B1" Name="Kundennummer">
    84. <Value Locale="de" Type="TEXT" Encoding="UTF-8">71070</Value>
    85. </NamedDV>
    86. <NamedDV ID="564A47CFA334AC65A9AF4D48FDAAB148" Name="Kostenstelle">
    87. <Value Locale="de" Type="TEXT" Encoding="UTF-8">79900001</Value>
    88. </NamedDV>
    89. <NamedDV ID="6520745BD4FE11ECB8A2005056A67495" Name="LIFESTATE">
    90. <Value Locale="de" Type="INTG" Plain="@1" Encoding="UTF-8">1</Value>
    91. </NamedDV>
    92. <NamedDV ID="4DFD67504E41E81AD4EE324DC82649B1" Name="Sachkontobezeichnung">
    93. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Wareneinkauf</Value>
    94. </NamedDV>
    95. <NamedDV ID="436D2E681F6A9EF898F3F1B27778C0A5" Name="Sachkonto">
    96. <Value Locale="de" Type="TEXT" Encoding="UTF-8">7087331 Wareneinkauf</Value>
    97. </NamedDV>
    98. <NamedDV ID="6D3C54B1B327F37A06294C4D336CE648" Name="Ort">
    99. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Oberhausen</Value>
    100. </NamedDV>
    101. <NamedDV ID="0B1939DCDCA1474E69D7AC3C7034530F" Name="Belegart">
    102. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Rechnung</Value>
    103. </NamedDV>
    104. <NamedDV ID="0A90080E10C9A345BD5A02A7689F6A15" Name="Bruttosumme">
    105. <Value Locale="de" Type="TEXT" Encoding="UTF-8">439,41</Value>
    106. </NamedDV>
    107. <NamedDV ID="F73969782B4E2A6FA7327B87404C9559" Name="Auftrag">
    108. <Value Locale="de" Type="TEXT" Encoding="UTF-8">79900001</Value>
    109. </NamedDV>
    110. <SimpleContent ID="65207441D4FE11ECB8A2005056A67495" Name="Notiz">
    111. <Value Locale="de" Type="NULL" Encoding="UTF-8"></Value>
    112. <Attributes>
    113. <NamedDV ID="65207442D4FE11ECB8A2005056A67495" Name="INDEX">
    114. <Value Locale="de" Type="INTG" Plain="@0" Encoding="UTF-8">0</Value>
    115. </NamedDV>
    116. </Attributes>
    117. </SimpleContent>
    118. <NamedDV ID="937C6577D280E45AD958D708841B3D16" Name="Nettosumme">
    119. <Value Locale="de" Type="TEXT" Encoding="UTF-8">369,25</Value>
    120. </NamedDV>
    121. <BlobContent ID="65257D06D4FE11EC8529005056A67495" Name="APPLICATIONDATA">
    122. <Property Value="1652694962" Name="FileTime"></Property>
    123. <Property Value="Mail_0_pdf.DMI" Name="XMLSrvBlobName"></Property>
    124. <Property Value="Mail_0_pdf.DMI" Name="FULL_PATHNAME"></Property>
    125. <Property Value="" Name="MimeType"></Property>
    126. <Property Value="Mail_0_pdf.DMI" Name="FileName"></Property>
    127. <Property Value="300" Name="Size"></Property>
    128. <Property Value="F8F40717134594F11761EBEDB1D152C7" Name="Hash"></Property>
    129. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_6093834652584792463_Mail_0_pdf.DMI.e3.blob"></Reference>
    130. <Attributes></Attributes>
    131. </BlobContent>
    132. <BlobContent ID="652778DDD4FE11EC8529005056A67495" Name="APPLICATIONDATA">
    133. <Property Value="1652694962" Name="FileTime"></Property>
    134. <Property Value="Mail_Original_eml.DMI" Name="XMLSrvBlobName"></Property>
    135. <Property Value="Mail_Original_eml.DMI" Name="FULL_PATHNAME"></Property>
    136. <Property Value="" Name="MimeType"></Property>
    137. <Property Value="Mail_Original_eml.DMI" Name="FileName"></Property>
    138. <Property Value="307" Name="Size"></Property>
    139. <Property Value="35C1A8B60A1B48E193E8F9465CB78724" Name="Hash"></Property>
    140. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_869463899909775015_Mail_Original_eml.DMI.e3.blob"></Reference>
    141. <Attributes></Attributes>
    142. </BlobContent>
    143. <BlobContent ID="65299BC4D4FE11EC8529005056A67495" Name="APPLICATIONDATA">
    144. <Property Value="1652694962" Name="FileTime"></Property>
    145. <Property Value="Scan_0001_pdf.DMI" Name="XMLSrvBlobName"></Property>
    146. <Property Value="Scan_0001_pdf.DMI" Name="FULL_PATHNAME"></Property>
    147. <Property Value="" Name="MimeType"></Property>
    148. <Property Value="Scan_0001_pdf.DMI" Name="FileName"></Property>
    149. <Property Value="304" Name="Size"></Property>
    150. <Property Value="9CDCCB6373FAA02A4BDD67A1C60B806D" Name="Hash"></Property>
    151. <Reference Type="RELATIVEFILE" Link="export.xml.0\export_8368465946839067901_Scan_0001_pdf.DMI.e3.blob"></Reference>
    152. <Attributes></Attributes>
    153. </BlobContent>
    154. <NamedDV ID="151792D270C1D77E5197F1D747DDB1D4" Name="Name1">
    155. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Klinger-Kempchen GmbH</Value>
    156. </NamedDV>
    157. <NamedDV ID="56D410049915DD194C0517837843200F" Name="Projektleiter">
    158. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Simon, Annette</Value>
    159. </NamedDV>
    160. <NamedDV ID="254DB7EE9D5B7538213C9A49D429D3D0" Name="Strasse_Hausnummer">
    161. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Im Waldteich 21</Value>
    162. </NamedDV>
    163. <NamedDV ID="21B803DB66FE1F6CC4BB3DFE4E044B5B" Name="Geschaeftsvorfall">
    164. <Value Locale="de" Type="TEXT" Encoding="UTF-8">Rechnung</Value>
    165. </NamedDV>
    166. <NamedDV ID="FF5BD4EB0912E5CE609D71646676BE36" Name="Rechnungsdatum">
    167. <Value Locale="de" Type="DATE" Plain="@20220413000000" Millis="0" Encoding="UTF-8">13.04.2022</Value>
    168. </NamedDV>
    169. <SimpleContent ID="65207439D4FE11ECB8A2005056A67495" Name="Volltext">
    170. <Value Locale="de" Type="NULL" Encoding="UTF-8"></Value>
    171. <Attributes>
    172. <NamedDV ID="6520743AD4FE11ECB8A2005056A67495" Name="INDEX">
    173. <Value Locale="de" Type="INTG" Plain="@0" Encoding="UTF-8">0</Value>
    174. </NamedDV>
    175. </Attributes>
    176. </SimpleContent>
    177. <SimpleContent ID="65207452D4FE11ECB8A2005056A67495" Name="Info">
    178. <Value Locale="de" Type="TEXT" Encoding="UTF-8">RG freigegeben</Value>
    179. <Attributes>
    180. <NamedDV ID="65207453D4FE11ECB8A2005056A67495" Name="INDEX">
    181. <Value Locale="de" Type="INTG" Plain="@0" Encoding="UTF-8">0</Value>
    182. </NamedDV>
    183. </Attributes>
    184. </SimpleContent>
    185. <NamedDV ID="16728121DE259F5A81A8D1B71BAC67B5" Name="MWST">
    186. <Value Locale="de" Type="TEXT" Encoding="UTF-8">70,16</Value>
    187. </NamedDV>
    188. <NamedDV ID="15E6BBEF3C5B01590401644AC09BAFDF" Name="Bestellnummer">
    189. <Value Locale="de" Type="TEXT" Encoding="UTF-8">109471</Value>
    190. </NamedDV>
    191. <NamedDV ID="6863E233D07EA249845E012D4488C18E" Name="Belegdatum">
    192. <Value Locale="de" Type="DATE" Plain="@20220413000000" Millis="0" Encoding="UTF-8">13.04.2022</Value>
    193. </NamedDV>
    194. <NamedDV ID="99EF6B88B087CC693A9D959F136EEA95" Name="Lieferscheinnummer">
    195. <Value Locale="de" Type="TEXT" Encoding="UTF-8">W-22-009012</Value>
    196. </NamedDV>
    197. <NamedDV ID="EB7E9B09B3D397A5FAEF069036B5C4FA" Name="Rechnungsnummer">
    198. <Value Locale="de" Type="TEXT" Encoding="UTF-8">F-22-008342</Value>
    199. </NamedDV>
    200. <NamedDV ID="AB976D57E52725AE4CC9FB9406AE43BF" Name="TITLE">
    201. <Value Locale="de" Type="TEXT" Encoding="UTF-8">INVOICE - GEVA RG: F-22-008342 Klinger-Kempchen GmbH 439,41</Value>
    202. </NamedDV>
    203. <NamedDV ID="362086ED3B75F828F6F199160B9363B8" Name="Mandant">
    204. <Value Locale="de" Type="TEXT" Encoding="UTF-8">GEVA</Value>
    205. </NamedDV>
    206. <NamedDV ID="F44F214EBD52C4F6B696476924ECCD9D" Name="Belegnummer">
    207. <Value Locale="de" Type="TEXT" Encoding="UTF-8">11030983</Value>
    208. </NamedDV>
    209. </Attributes>
    210. <Pool>
    211. <Value Type="TEXT" Encoding="UTF-8">/Default/07_GEVA/Einkauf</Value>
    212. </Pool>
    213. </Document>


    aufgrund des Codeumfangs Spoiler hinzugefügt ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Hey,

    ich hab es mittlerweile schon hinbekommen, hab mich ein wenig durchgehangeln müssen, deshalb bin ich mir echt unsicher obs vernünftig ist aber das Ergebnis stimmt zumindest :).

    C#-Quellcode

    1. var namedDVs = document.Descendants("NamedDV");
    2. List<string[]> data = new List<string[]>();
    3. foreach (var namedDV in namedDVs)
    4. {
    5. if (namedDV.Attribute("Name").Value != "INDEX")
    6. {
    7. data.Add(new[] { namedDV.Attribute("Name").Value + ";;" + namedDV.Value });
    8. }
    9. }
    10. string csvFilePath = Path.Combine(documentFolder, "NamedDVs.csv");
    11. using (var writer = new StreamWriter(csvFilePath))
    12. {
    13. writer.WriteLine("IndexName ;; Value");
    14. using (var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture))
    15. {
    16. foreach (string[] line in data)
    17. {
    18. csvWriter.WriteField(line[0]);
    19. csvWriter.NextRecord();
    20. }
    21. }
    22. }