2011-12-15 77 views
1

我的XML看起来是这样的:使用的ReadXml和忽略属性

<data type="widgets"> 
    <record> 
     <id>1</id> 
    </record> 
    <record> 
     <id>2</id> 
    </record> 
</data> 

在上面的XML中,最近添加的“类型”属性。在添加之前,我可以使用DataSet.ReadXml将完整的Xml读入表中,然后从DataSet.Tables [0]解析出我需要的元素。添加属性后,DataSet.ReadXml不返回任何表格。我如何在没有它的情况下使用属性执行相同的功能?我不想将类型属性读入我的表中。

+0

根据.net的版本和您需要编写多少代码,查看XPath或linq。 – 2011-12-15 21:42:43

回答

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