我有一个以下格式的 XML
<DBdestination>
<val1>ANI</val1>
<val2>DNIS</val2>
<val3>Date</val3>
<val4>Time</val4>
<val5>ConnId</val5>
<val6>UUID</val6>
<val7>EmployeeId</val7>
<val8>AgentDN</val8>
</DBdestination>
我需要获取DBdestination
的子级名称及其列表中的值(或类似的值),例如val1,val2,val3,val4.....
和另一个列表 ANI,DNIS......
我试过了
var xdoc = XDocument.Load("C:/Users/xxx/Desktop/RCCM_TOOL/configRCCM.xml");
var units = xdoc.Descendants("DBdestination").Elements().ToArray();
但这给了我整个标签。
如何获得我想要的结果?
最佳答案
你已经很接近了:
xdoc.Descendants("DBdestination")
.Elements()
.Select(e => Tuple.Create(e.Name.ToString(), e.Value))
.ToList()
这会给你一个 List<Tuple<string, string>>
.
另一种选择是这样的:
...
.Select(e => Tuple.Create(e.Name, e.Value))
.ToList()
这会给你一个 List<Tuple<XName, string>>
。这样做的好处是 XName
可以与名称 val1
进行比较并且不需要 namespace
而ToString()
将为您提供完全限定的名称。
处理支持.NET 3.5的需要;让我们这样做:
xdoc.Descendants("DBdestination")
.Elements()
.Select(e => new
{
Name = e.Name,
Value = e.Value
})
.ToList()
关于c# - 获取 ChildNode 名称及其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19682023/