c# - 在 C# 中使用 Linq 同时读取两个 xml 文件
问题描述
我正在尝试同时循环 2 个 xml 文件并加载到自定义 JobModel 对象列表中。我在jobs.ToList() 调用上收到NullReferenceException,显然我的Linq 表达式不正确并且作业枚举为空。
第一个xml文件
tasks.xml
<objects>
<object id="X001">
<property name="jobDetail" />
<property name="cronExpressionString" value="0 00 00 ? * MON-FRI" />
</object>
<object id="Addf8ae09bf7a47a891114b8246e3108d">
<property name="jobDetail" ref="TaskExecutor" />
<property name="cronExpressionString" value="0 00 18 ? * MON,TUE,WED,THU,FRI *" />
</object>
</objects>
第二个xml文件
details.xml
<Tasks>
<Task id="X001">
<name>task_1</name>
<desc>desc_1</desc>
</Task>
<Task id="Addf8ae09bf7a47a891114b8246e3108d">
<name>task_2</name>
<desc>desc_2</desc>
</Task>
</Tasks>
这是我尝试过的各种组合
XDocument tasks = XDocument.Load(@"tasks.xml");
XDocument details = XDocument.Load(@"details.xml");
var jobs = from t in tasks.Root.Elements()
join d in details.Root.Elements() on t.Attribute("id").Value equals d.Attribute("id").Value
select new JobModel
{
Id = (string)t.Attribute("id").Value,
CronExpression = t.Descendants("property")
.Where(x => (string)x.Attribute("name") == "cronExpressionString")
.Select(x => (string)x.Element("value"))
.FirstOrDefault()
};
jobs.ToList();
任何帮助深表感谢。谢谢你。
解决方案
推荐阅读
- prestashop - 如何重定向到购物车
- python - PySpark:对多个数据帧进行分区和散列,然后加入
- docker - Nginx + 码头工人。504网关超时
- windows - 为什么powershell不保存文件
- sql - 在 MSSQL 中查找“LIKE”重复项
- javascript - 复选框使用 jquery 过滤产品并通过重新加载保持状态
- scala - 从 Cassandra 查询的数据无法在同一列上再次过滤(InvalidQueryException)
- php - 在哪里以及如何实例化依赖项
- ajax - ASP.NET MVC - 对pdf文件的服务器端的ajax调用?
- c++ - std::lists 的 std::vector 中的不可复制元素