Для моего проекта требуется функция преобразования входного XML-файла в DataTable. Для этого я использую следующий код.Удаление повторяющихся элементов в XML
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
dataSourceFileStream.Seek(0, SeekOrigin.Begin);
ds.ReadXml(dataSourceFileStream);
dt = ds.Tables[0];
Это работает тихое право, если входной XML не содержит повторяющиеся элементы, для, например, если файл XML, как показано ниже:
<?xml version="1.0" encoding="iso-8859-1"?>
<DocumentElement>
<data>
<DATE>27 September 2013</DATE>
<SCHEME>Test Scheme Name</SCHEME>
<NAME>Mr John</NAME>
<SCHEME>Test Scheme Name</SCHEME>
<TYPE>1</TYPE>
</data>
</DocumentElement>
Как вы можете видеть выше, элемент СХЕМУ появляется дважды , когда этот вид XML-файла приходит ds.ReadXml(dataSourceFileStream);
не возвращает правильную таблицу данных.
Любой лучший способ справиться с этим?
Попробуйте использовать ReadXml (поток, XmlReadMode.IgnoreSchema – Carra
Вы хотите для преобразования любого входного XML-файла в DataTable? Если это так, то это не очень хорошая идея, потому что XML содержит иерархические данные –
@Carra Я пробовал этот. Это тоже не работает. – vijay