我需要能够使用一个文件,我不一定知道元素的名称是什么,或者他们将拥有多少个孩子(即: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元素丢失。”
答案 0 :(得分:1)
我遇到的问题是输入流是空的。我之前正在将流复制到MemoryStream:
MemoryStream memStream = new MemoryStream();
using (Stream s = file.PostedFile.InputStream)
{
s.CopyTo(memStream);
}
对于xml docs,这不是必需的(它用于excel),所以我只是在上传的文件是xls或xlsx时才这样做。