我有2个XElements。每一个包含多个儿童要件返回不在其他XML中的元素
如
XML1:
<Addresses>
<Address>
<Line1>1 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
<Line1>57 New Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
<Address>
<Line1>2 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
</Addresses>
XML2:
<Addresses>
<Address>
<Line1>1 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
<Address>
<Line1>2 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
</Addresses>
我试图把一个LINQ查询,将筛选出的地址元素在Xml中但不在Xml2中(在上述情况下,它将是地址“57 New Street”)
目前我的代码看起来是这样的:
var diffAddress = from address1 in Xml1.Elements()
from address2 in Xml2.Elements()
where (string)address1.Element("Line1") != (string)address2.Element("Line1") ||
where (string)address1.Element("Postcode") != (string)address2.Element("Postcode")
select address1;
然而其返回的所有值的XML1 难道我就在想,我可以通过一个单一的查询做到这一点还是我将不得不透过这两个结果然后遍历它们以获取不在Xml2中的Xml1中的地址?
任何帮助,将不胜感激:)
看一看的LINQ“除”操作 – paul 2012-03-21 13:21:00
我不认为你的代码目前汇编给出错误的'代码|| '和/或错误'在哪里。 – user7116 2012-03-21 14:11:23
@paul:我相信他会想'交集'。 – user7116 2012-03-21 14:23:41