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

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

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

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

http://pastebin.com/39VStzcw

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

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

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

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

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

Просьба включить,

Простой код

1 Ответ

0 голосов
/ 07 сентября 2011

Есть много способов читать 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();
}
...