具有相同标记名称和不同值的xml文件
问题描述:
我正在研究XML并在asp.net网格中获取其值。我的XML具有相同的列名和不同的值,所以每次只读一条记录。有人帮忙吗?具有相同标记名称和不同值的xml文件
下面是我的XML结构
<ind>
<Name>
<value> a1 </value>
</Name>
<Name>
<value> a2 </value>
</Name>
<Name>
<value> a3 </value>
</Name>
<Name>
<value> a4 </value>
</Name>
</ind>
答
您可以使用LINQ到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元素到DataT能够。
修改后的版本,以填补一个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"]);
输出 名1:A1,名称2:A2,NAME3:A3
这里,如何发布代码您检索或生成此xml –
xmldoc.Load(“file.xml”); XmlNodeList nodeList = xmldoc.SelectNodes(“/ ind/name”); foreach(节点列表中的XmlNode节点) DataRow dtrow = dt.NewRow(); dtrow [“Name1”] = node [“name”] [value] .InnerText; dtrow [“Name2”] = node [“name”] [value] .InnerText; dtrow [“Name3”] =节点[“名称”] [值] .InnerText; }即时通讯使用这种类型的方法 – Ussama
您可以修改您的问题并添加您的格式化代码。如果你加载到DataTable中,我修改了我的答案以添加到数据表。 –