【问题标题】:Select particular node and its value from XElement从 XElement 中选择特定节点及其值
【发布时间】:2016-05-03 14:29:27
【问题描述】:

我有下面的 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>

如何选择不同的 Id 标签来找出它的值? 比如 Requirement 、 User 、 Aby 、 Doc 下的 Id

我试过requirement.Descendants().Where(r=&gt;r.Name.LocalName=="Id") 它返回给我 Xlement 中存在的所有 id,如何在任何标签中选择特定的 Id?

【问题讨论】:

    标签: c# linq-to-xml xelement


    【解决方案1】:

    您必须考虑命名空间。以下为您获取所有 Id 节点

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多