我真的需要帮助下面的where子句。
考虑这个xml
<name xmlns="http://www.imsglobal.org/xsd/imslip_v1p0">
<partname>
<typename>
<tyvalue>First</tyvalue>
</typename>
<text>Charles</text>
</partname>
<partname>
<typename>
<tyvalue>Last</tyvalue>
</typename>
<text>Ward</text>
</partname>
</name>
此代码返回一个元素
List<XElement> xElements = xmlDocument.Descendants(Aw + "name").
Where(x => (x.Element(Aw + "partname").Element(Aw + "typename").Element(Aw + "tyvalue")).Value == "First").
Select(x => x.Element(Aw + "partname").Element(Aw + "text")).ToList();
但是如果我将where子句更改为“Last”,则返回零个元素。
List<XElement> xElements = xmlDocument.Descendants(Aw + "name").
Where(x => (x.Element(Aw + "partname").Element(Aw + "typename").Element(Aw + "tyvalue")).Value == "Last").
Select(x => x.Element(Aw + "partname").Element(Aw + "text")).ToList();
请帮忙。我真的被卡住了。
答案 0 :(得分:0)
试试这个:
List<XElement> xElements = xmlDocument.Descendants(Aw + "name")
.Descendants(Aw + "partname")
.Descendants(Aw + "typename")
.Descendants(Aw + "tyvalue")
.Where(x => x.Value == "Last")
.ToList();
答案 1 :(得分:0)
x.Element返回第一个孩子;因为有许多,你需要使用“元素”而不是“元素”,你必须在其上进行迭代。