[英]Select particular node and its value from XElement
I have below xml as XElement . 我在xml下面有XElement。
<a:Requirement xmlns:b="ABC.Domain.BM.Contract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" i:type="b:ABC.Domain.DM.Contract.Base.SR.DR" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:a="http://schemas.datacontract.org/2004/07/ABC.Domain.BM.Contract.Base.SR">
<Id xmlns="http://schemas.datacontract.org/2004/07/ABC.Common.Contract">123123123123-005d-4fb3-b5f9-21312312312</Id>
<Name xmlns="http://schemas.datacontract.org/2004/07/ABC.Common.Contract"> Invoice</Name>
<a:CBy xmlns:c="http://schemas.datacontract.org/2004/07/ABC.Domain.DM.Contract.Base">
<c:User xmlns:d="http://schemas.datacontract.org/2004/07/ABC.Common.Contract">
<d:Id>00000000-0000-0000-0000-000000000000</d:Id>
</c:User>
</a:CBy>
<a:DueIn>
<a:Span>qwede</a:Span>
<a:Type>Days</a:Type>
</a:DueIn>
<a:MBy xmlns:c="http://schemas.datacontract.org/2004/07/ABC.Domain.DM.Contract.Base">
<c:User xmlns:d="http://schemas.datacontract.org/2004/07/ABC.Common.Contract">
<d:Id>00000000-0000-0000-0000-000000000000</d:Id>
</c:User>
</a:MBy>
<a:Note />
<a:TaskName> Invoice</a:TaskName>
<a:ABy xmlns:c="http://schemas.datacontract.org/2004/07/ABC.Common.Contract">
<c:Id>123123123123-9766-4ce3-9801-6992042dfdf3</c:Id>
</a:ABy>
<a:Doc xmlns:c="http://schemas.datacontract.org/2004/07/ABC.Common.Contract">
<c:Id>bb4995d5-a6fe-4c4d-8fd7-123123123123123</c:Id>
</a:Doc>
</a:Requirement>
How Can I select different Id tags to find out its values? 如何选择不同的Id标签以找出其值? like Id under Requirement , User , Aby , Doc 就像Id在Requirement,User,Aby,Doc下
I tried requirement.Descendants().Where(r=>r.Name.LocalName=="Id")
which returns me All ids present in Xlement , How can I select perticular Id in any of tag? 我尝试了requirement.Descendants().Where(r=>r.Name.LocalName=="Id")
,该返回的所有ID都存在于Xlement中,如何在任何标记中选择垂直ID?
You've to take namespaces into account. 您必须考虑名称空间。 Following gets you all Id nodes 以下获取所有Id节点
XNamespace ns = "http://schemas.datacontract.org/2004/07/ABC.Common.Contract";
var result = requirement.Descendants(ns + "Id")
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.