我正在处理XML并在asp.net网格中获取其值。我的xml具有相同的列名和不同的值,因此每次只读一条记录。有人帮忙吗?
以下是我的XML结构
<ind>
<Name>
<value> a1 </value>
</Name>
<Name>
<value> a2 </value>
</Name>
<Name>
<value> a3 </value>
</Name>
<Name>
<value> a4 </value>
</Name>
</ind>
答案 0 :(得分:0)
您可以使用Linq To Xml
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(xml);
var result = xdoc.Descendants("Name");
foreach (XElement item in result) {
Console.WriteLine("Name: " + item.Value);
}
<强>更新强>
从OP的注释中,将xml元素添加到DataTable。
用于填充DataTable的修改版本:
XDocument xdoc = new XDocument();
//xdoc= XDocument.Load("file.xml"); read from file
xdoc = XDocument.Parse(xml); //read from string
List<string> Names = new List<string>();
var result = xdoc.Descendants("Name");
foreach (var item in result)
Names.Add(item.Value);
//create datatable
DataTable dt = new DataTable("table");
dt.Columns.Add("Name1", typeof(string));
dt.Columns.Add("Name2", typeof(string));
dt.Columns.Add("Name3", typeof(string));
//fill datatable
DataRow dtrow = dt.NewRow();
dtrow["Name1"]=Names[0];
dtrow["Name2"]=Names[1];
dtrow["Name3"]=Names[2];
dt.Rows.Add(dtrow);
//test datatable
Console.WriteLine("Name1:{0}, Name2:{1},Name3:{2}",
dt.Rows[0]["Name1"],
dt.Rows[0]["Name2"],
dt.Rows[0]["Name3"]);
输出 Name1:a1,Name2:a2,Name3:a3