使用ReadXML加载XML文件的根节点以外的其他内容

时间:2013-09-03 17:59:21

标签: .net xml dataset readxml

我正在尝试使用.NET将XML文件加载到嵌入式数据库(SQLite)中。我发现这样做的最好方法是将数据读入DataTable / DataSet,然后使用DataAdapter将DataTable更新到数据库表中。

问题是,我必须使用的XML文件具有不在根节点中的数据。有根节点(表),然后是子节点(tableXXX),所有数据都在子节点中。

当我使用ReadXML(对于DataSet对象)时,它只读取一条记录(包含子节点表的名称)。我想完全忽略根节点,并将第一个子节点视为根节点。

我将如何做到这一点?

(或者,如果有一种更简单的方法将XML文件加载到数据库,我也有兴趣听到这个,虽然我猜我仍然需要解决这个根节点问题)。

WATYF

1 个答案:

答案 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());