C#DataSet ReadXML错误:“表xxx已经被分配为另一个表yyy的子节点”。没有架构

时间:2011-08-30 16:38:32

标签: c# .net xml xmldocument readxml

我正在使用DataSet中的ReadXML来读取没有任何架构的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文档?

请点亮,

Simplecode

1 个答案:

答案 0 :(得分:0)

阅读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();
}