0
我怎樣才能節點「字段名」的基礎上XID & &通過LINQ沒到XML節點。 注意:dID可能存在也可能不存在。 我到目前爲止試過的東西印在下面。 但是我的代碼不處理時沒有按做的條件不存在的LINQ to XML獲得基於多個條件
<Configuration>
<Contract xID="2">
<Document dID="227">
<FieldName name="AAAA"/>
<FieldName name="BBBB"/>
</Document>
</Contract>
<Contract xID="5">
<FieldName nam`enter code here`e="CCCC"/>
<FieldName name="DDDD"/>
</Contract>
</Configuration>
是我迄今爲止嘗試過下面被打印出來。 但是我的代碼不處理的情況時,確實沒有按不存在
XDocument xmlDoc = XDocument.Load("../../FieldConfiguration.xml");
var fieldNames = (from n in xmlDoc.Descendants("Contract")
where (int)n.Attribute("xID") == 5 &&
(int)n.Element("Document").Attribute("dID") == 227
from f in n.Element("Document").Elements()
select (string) f.Attribute("name")).ToList();
foreach (string name in fieldNames)
{
Console.WriteLine("Site: " + name);
}
傑森添加檢查空:如果我的投入是XID = 5和DID = 777不是在這種情況下,我的結果集應包含「CCCC」和「DDDD」它應該忽略沒 – user1163306
你可以爲你在where子句中一樣,使用括號表明優先級 – Jason
我在LINQ是新來的XML添加儘可能多的檢查,所以我不能忽略「dID」,如果它不在「Contract」節點中 – user1163306