【发布时间】:2017-01-16 15:20:55
【问题描述】:
我有这个 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<FieldsDefinitions>
<FieldsDefinition>
<Field>DEMOFIELD</Field>
<Length>15</Length>
<Label>IIS: </Label>
<Type>DropDown</Type>
</FieldsDefinition>
<FieldsDefinition>
<Field>IIS</Field>
<Length>15</Length>
<Label>IIS: </Label>
<Type>DropDown</Type>
</FieldsDefinition>
<FieldsDefinition>
<Field>DEMOFIELD</Field>
<Length>20</Length>
<Label>Demo Field</Label>
<Type>Text</Type>
</FieldsDefinition>
</FieldsDefinitions>
如果我想获取 value=DEMOFIELD 的所有字段,我可以这样做:
XDocument xDoc = XDocument.Load("file.xml");
var x = xDoc.Descendants("Field").Where(elem => elem.Value == "DEMOFIELD");
foreach(XElement e in x)
{
_log.Debug(e.Name + " = " + e.Value);
}
但是如何查询 field='DEMOFIELD' 和 label='IIS:'?我是否使用了一种 multi-where?
【问题讨论】:
标签: c# xml linq linq-to-xml