gpt4 book ai didi

c# - 使用 linq 读取 xml 属性

转载 作者:数据小太阳 更新时间:2023-10-29 02:29:18 24 4
gpt4 key购买 nike

<ARTICLE_PRICE_DETAILS>
<DATETIME type="valid_start_date">
<DATE>2015-07-01</DATE>
</DATETIME>
<DATETIME type="valid_end_date">
<DATE></DATE>
</DATETIME>
</ARTICLE_PRICE_DETAILS>

如何获取元素中的值?

我试过这个

   var productQuery = (from p in xmlDocument.Descendants("ARTICLE_PRICE_DETAILS")
select new
{

articleDatetime = p.Element("DATETIME")
.Attribute("valid_start_date")
.Value

});

当我尝试使用 articleDatetime 时,出现异常。需要帮助我

最佳答案

好吧,看起来您正在尝试获取 DATETIME 下具有 type="valid_start_date" 属性的 DATE 元素的值。

可以通过多种方式完成,这里是其中一种:

var dates = xmlDocument
.XPathSelectElements("ARTICLE_PRICE_DETAILS/DATETIME[@type='valid_start_date']/DATE")
.Select(e => e.Value)
.ToList();

请注意,这里的大部分工作都是使用 XPathSelectElements 方法和适当的 xpath 表达式完成的。

同样的结果也可以在不使用 xpath 选择的情况下实现,只需通过几个 linq 调用,如:

var xmlDocument = doc.Descendants("ARTICLE_PRICE_DETAILS")
.Descendants("DATETIME")
.Where(e => e.Attribute("type")?.Value == "valid_start_date")
.Descendants("DATE")
.Select(e => e.Value)
.ToList();

但它看起来可读性较差(至少从我的角度来看)。

关于c# - 使用 linq 读取 xml 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34270708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com