正在从XML读取值
本文关键字:读取 XML | 更新日期: 2023-09-27 17:57:41
XML数据:
<LIST>
<TITLE>Item</TITLE>
<YEAR>2013</YEAR>
<NAME>
<NAME_ n="1">AB</NAME_>
<NAME_ n="2">CD</NAME_>
<NAME_ n="3">EF</NAME_>
<NAME_ n="4">GH</NAME_>
<NAME_ n="5">IJ</NAME_>
</NAME>
<PRICE>
<PRICE_ n="1">100</PRICE_>
<PRICE_ n="2">103</PRICE_>
</PRICE>
<AV>
<AV_ n="0">128,457</AV_>
<AV_ n="1">1,746,301</AV_>
<AV_ n="2">173,247</AV_>
<AV_ n="3">246,102</AV_>
</AV>
<PIC>
www.example.com/pictest.jpg
</PIC>
<URL>www.test.com/itemtest</URL>
</LIST>
我试过这个代码:
XmlTextReader reader = new XmlTextReader(a);
while (reader.Read())
{
if (reader.Name == "AV")
{
label1.Text += reader.Value;
}
现在,我知道我的代码需要更多的帮助,因为我无法获得任何输出
如何从该XML中读取值?
有人可以帮助我从这个XML中获取所有值吗?bcs我对xml非常陌生,需要开始工作的样本!:(
要从AV_
节点的内容中获取所有数值和属性编号,请使用下一个脚本:
string str = "..."; //xml contents go here
var xml = XDocument.Parse(str);
var values = xml.Descendants("AV_")
.Select(n => n.Attribute("n").Value + " : " + n.Value);
values.ToList()
.ForEach(Console.WriteLine);
打印:
0 : 128,457
1 : 1,746,301
2 : 173,247
3 : 246,102
不要忘记将对Linq的引用添加到XML命名空间using System.Xml.Linq
您正在查找父元素并获取它的文本值。它没有文本值,只有另一个子元素。
改为尝试
XmlTextReader reader = new XmlTextReader(a);
while (reader.Read())
{
if (reader.Name == "AV_")
{
label1.Text += reader.Value;
}