我正在尝试使用.NET将XML文件加载到嵌入式数据库(SQLite)中。我发现这样做的最好方法是将数据读入DataTable / DataSet,然后使用DataAdapter将DataTable更新到数据库表中。
问题是,我必须使用的XML文件具有不在根节点中的数据。有根节点(表),然后是子节点(tableXXX),所有数据都在子节点中。
当我使用ReadXML(对于DataSet对象)时,它只读取一条记录(包含子节点表的名称)。我想完全忽略根节点,并将第一个子节点视为根节点。
我将如何做到这一点?
(或者,如果有一种更简单的方法将XML文件加载到数据库,我也有兴趣听到这个,虽然我猜我仍然需要解决这个根节点问题)。
WATYF
答案 0 :(得分:0)
string xml = "<tables><table1><col1>xyz</col1></table1></tables>";
DataSet ds = new DataSet();
ds.ReadXml(XDocument.Parse(xml).Root.Element("table1").CreateReader());
var value = ds.Tables[0].Rows[0]["col1"].ToString(); //<-- xyz
修改强>
XDocument
位于System.Xml.Linq
名称空间
代码可以是
ds.ReadXml(XDocument.Parse(xml).Root.Elements().First().CreateReader());