使用ReadXml和Ignore属性
本文关键字:属性 Ignore ReadXml 使用 | 更新日期: 2023-09-27 18:18:04
我有一个像这样的Xml:
<data type="widgets">
<record>
<id>1</id>
</record>
<record>
<id>2</id>
</record>
</data>
在上面的Xml中,"type"属性是最近添加的。在添加它之前,我可以使用DataSet。ReadXml将完整的Xml读取到表中,然后从DataSet.Tables[0]中解析出我需要的元素。添加属性后,DataSet。ReadXml不返回任何表。如何使用该属性执行与没有该属性时相同的功能?我对将type属性读取到表中不感兴趣。
下面是一个使用XPath的示例。
XmlDocument doc = new XmlDocument();
doc.Load("C:''blah.xml");
XmlNodeList nodes = doc.SelectNodes("//data//record//id");
foreach (XmlNode node in nodes) {
//do something meaningful
Console.WriteLine(node.InnerText);
}
解决这个问题的另一种方法是提前准备好数据表;
string myXml = @"<data type=""widgets"">
<record>
<id>1</id>
</record>
<record>
<id>2</id>
</record>
</data>";
DataSet ds = new DataSet();
DataTable dt = new DataTable("record");
dt.Columns.Add("id", typeof(int));
ds.Tables.Add(dt);
ds.ReadXml(new StringReader(myXml));