使用ReadXml和忽略属性

时间:2011-12-15 21:35:22

标签: c# .net xml

我的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属性读入表格不感兴趣。

2 个答案:

答案 0 :(得分:0)

以下是使用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);
}

答案 1 :(得分:0)

解决此问题的另一种方法是提前准备数据表;

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));