XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<IMPORT ExportDate="2016-03-02" Exercise="1" User="asa" Version="8.73" BusinessUnit="abc(1236)">
<BusinessUnitAdmin>
...
...
</BusinessUnitAdmin>
<BusinessUnit>
..
..
</BusinessUnit>
<Exercise>
..
..
</Exercise>
<Exercise>
..
..
</Exercise>
<Contact>
..
</Contact>
</IMPORT>
Я пытаюсь экспортировать этот XML в Excel, сохраняя при этом также схему XML. Для этого я попытался преобразовать XML в Dataset и затем экспортировать его в Excel. Он работает правильно, если я удаляю корневой элемент - IMPORT из XML. Однако, поскольку он имеет атрибут «BusinessUnit», это предотвращает чтение «BusinessUnit» в качестве элемента. Для этого я пытаюсь читать XML со второго элемента - <BusinessUnitAdmin>
; но не в состоянии сделать.Экспорт данных XML в Excel с использованием C#
C# Код:
DataSet ds = new DataSet();
string path = "C:\\abc\\xyz.xml";
ds.ReadXml(path); //throws error
ExportDataSetToExcel(ds);
Ошибка: «Столбец с именем„BusinessUnit“уже принадлежит к этому DataTable:. Не может установить вложенное имя таблицы с таким же именем»
Я попытался с помощью LINQ:
XDocument xdoc = XDocument.Load(path);
XElement import = xdoc.Element("IMPORT");
XElement contact = import.Element("Contact");
StringReader theReader = new StringReader(contact.ToString());
ds.ReadXml(theReader);
Он работает правильно, но таким образом, я должен вручную прочитать все элементы.
Я также пробовал читать элементы, используя - var allElements = xdoc.Descendants()
; , но не удалось сохранить определенные элементы в наборе данных.