将XML读入DataTable - System.Xml.XmlException:缺少根元素

时间:2013-07-24 18:54:16

标签: c# asp.net xml

我需要能够使用一个文件,我不一定知道元素的名称是什么,或者他们将拥有多少个孩子(即:dataTable将拥有多少列)。但是,它的格式应为:

<Items>
   <Item>
      <Price>25</Price>
      <Name>Basketball</Name>
   </Item>
   <Item>
      <Price>29</Price>
      <Name>Football</Name>
   </Item>
</Items>

我试过这个:

DataSet ds = new DataSet();
ds.ReadXml(file.PostedFile.InputStream, XmlReadMode.InferSchema);

而且这个:

ds.Tables[0].ReadXml(file.PostedFile.InputStream);

但我不断收到“System.Xml.XmlException:Root元素丢失。”

1 个答案:

答案 0 :(得分:1)

我遇到的问题是输入流是空的。我之前正在将流复制到MemoryStream:

MemoryStream memStream = new MemoryStream();
using (Stream s = file.PostedFile.InputStream)
{
     s.CopyTo(memStream);
}

对于xml docs,这不是必需的(它用于excel),所以我只是在上传的文件是xls或xlsx时才这样做。