XElement - 无法捕获下一个节点
Posted
技术标签:
【中文标题】XElement - 无法捕获下一个节点【英文标题】:XElement - not able to capture the next node 【发布时间】:2020-04-27 07:19:37 【问题描述】:我有一个下面的 xml 文件:
<?xml version='1.0'?>
<Products>
<Product>
<Product_id>1100</Product_id>
<Product_name>xyz</Product_name>
</Product>
<Product>
<Product_id>1101</Product_id>
<Product_name>abc</Product_name>
</Product><Product>
<Product_id>1102</Product_id>
<Product_name>def</Product_name>
</Product>
</Products>
我正在尝试获取每个属性的值,但我只得到了值,而不是全部 3 个。关于如何纠正这个问题的任何指针?
foreach (XElement xe in xdoc.Descendants().Elements("Product"))
obj.status = xe.Element("Product_id"). Value;
obj.file_id = xe.Element("Product_name").Value;
productlist.Add(obj);
上述循环不会遍历除第一个产品“xyz”之外的所有属性。
【问题讨论】:
【参考方案1】:您需要为每个循环创建一个新对象。现在你只保存最后一项
class Program
static void Main(string[] args)
List<Object> productlist = new List<Object>();
foreach (XElement xe in xdoc.Descendants().Elements("Product"))
Object obj = new Object();
obj.status = xe.Element("Product_id").Value;
obj.file_id = xe.Element("Product_name").Value;
productlist.Add(obj);
public class Object
public string status get; set;
public string file_id get; set;
【讨论】:
以上是关于XElement - 无法捕获下一个节点的主要内容,如果未能解决你的问题,请参考以下文章