2016-05-03 2 views
0

У меня есть xml как XElement.Выберите конкретный узел и его значение из 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> 

Как выбрать различные теги идентификаторов, чтобы узнать его значения? как Id под Требованию, пользователь, абы, Doc

Я попытался requirement.Descendants().Where(r=>r.Name.LocalName=="Id") , который возвращает меня все идентификаторы, присутствующие в Xlement, Как я могу выбрать perticular Id в любом из тега?

ответ

0

Вы должны учитывать пространства имен. Ниже приведены все идентификационные узлы

XNamespace ns = "http://schemas.datacontract.org/2004/07/ABC.Common.Contract"; 
    var result = requirement.Descendants(ns + "Id") 
        .ToList(); 

 Смежные вопросы

  • Нет связанных вопросов^_^