Ошибка C# DataSet ReadXML: таблица xxx уже выделена как дочерняя для другой таблицы yyy. Нет схемы

Я использую ReadXML из DataSet для чтения XML-документа без какой-либо схемы. Есть 2 тега «длительность», каждый из которых находится в другом родительском теге. Вот почему ReadXML жалуется:

System.Data.DataException: таблица «duration» уже выделена как дочерняя для другой таблицы «video». Невозможно установить таблицу «актив» в качестве родительской таблицы.

Это документ XML, который он пытается прочитать:

http://pastebin.com/39VStzcw

(Я не смог правильно вставить сюда XML)

Это код С#, который я использую:

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())  
        {  
            resultDs.ReadXml(response.GetResponseStream());  
        }  
        return resultDs;

Есть ли другой способ прочитать этот XML-документ?

Пожалуйста, просветите,

Простой код


person RoundOutTooSoon    schedule 30.08.2011    source источник


Ответы (1)


Есть много способов читать XML, зависит от вашего личного вкуса. Вот некоторые примеры:

Я пробовал читать с помощью DataSet.ReadXml, и он без проблем создает таблицы. Разница лишь в том, что я обращался к XML с локального компьютера, а не через Интернет, как вы:

const string xmlPath = @"XmlFile.xml";
var ds = new DataSet();
var fs = new FileStream(xmlPath, FileMode.Open);

try
{
    ds.ReadXml(fs);
    foreach (DataTable table in ds.Tables)
    {
        Console.WriteLine("Table name: " + table.TableName);
    }
    Console.WriteLine("Test");
}
catch (Exception e)
{
    Console.WriteLine(e.Message);
}
finally
{
    fs.Close();
}
person Jernej Jerin    schedule 07.09.2011