C# 无法从XElement获取xml节点
我真的需要下面where子句的帮助 考虑一下这个xmlC# 无法从XElement获取xml节点,c#,xml,linq,xelement,C#,Xml,Linq,Xelement,我真的需要下面where子句的帮助 考虑一下这个xml <name xmlns="http://www.imsglobal.org/xsd/imslip_v1p0"> <partname> <typename> <tyvalue>First</tyvalue> </typename> <text>Charles</text> </partname>
<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();
List-xElements=xmlDocument.substands(Aw+“name”)。
其中(x=>(x.Element(Aw+“partname”).Element(Aw+“typename”).Element(Aw+“tyvalue”)).Value==“First”)。
选择(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();
List-xElements=xmlDocument.substands(Aw+“name”)。
其中(x=>(x.Element(Aw+“partname”).Element(Aw+“typename”).Element(Aw+“tyvalue”)).Value==“Last”)。
选择(x=>x.Element(Aw+“partname”).Element(Aw+“text”)).ToList();
请帮忙。我真的卡住了 试试这个:
List<XElement> xElements = xmlDocument.Descendants(Aw + "name")
.Descendants(Aw + "partname")
.Descendants(Aw + "typename")
.Descendants(Aw + "tyvalue")
.Where(x => x.Value == "Last")
.ToList();
List-xElements=xmlDocument.substands(Aw+“name”)
.子代(Aw+“零件名”)
.后代(Aw+“类型名称”)
.后代(Aw+“tyvalue”)
.其中(x=>x.值==“最后一次”)
.ToList();
x.Element返回第一个子元素;因为有很多元素,所以您需要使用“元素”而不是“元素”,您必须对其进行迭代。谢谢您的回复。我在回家的路上坐地铁,但我周一早上第一件事就是试试。