C# 数据集读取 XML 错误:"the table xxx is already allocated as a child of another table yyy" 。无架构



我使用ReadXML从数据集读取XML文档没有任何模式。在不同的父标签中有2个"duration"标签。这就是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

读取XML的方法有很多种,取决于您的个人品味。下面是一些例子:

  • StreamReader
  • XmlReader
  • XPath
  • 数据集

我试着用数据集阅读。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();
}

最新更新