如何在C#中迭代XElement的throgh XAttribute?

时间:2015-10-16 02:09:45

标签: c# xml linq

我有以下XElement结构:

XElement xmleElement=

<portal>
 <form patientid="72615" consentformid="430" appointmentid="386919"   actiontype="3">
   <signatures>
     <signature signatureid="858" encodedsignature="rkJggg==" />
   <signature signatureid="859" encodedsignature="" />
    </signatures>
  </form>
</portal>

现在我想遍历这些元素的每个签名并获得每个encodedsignature XAttribute。 基本上希望每个门户/表单/签名/ sugnature [encodedsignature]属性使用一些foreach类迭代器。 任何帮助都会受到高度评价。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

听起来像你想要的东西:

var encodedSignatures = doc.Descendants("signature")
                           .Select(x => x.Attribute("encodedSignature").Value;

或者更明确地说明这条道路:

var encodedSignatures = doc.Root
                           .Element("form")
                           .Element("signatures")
                           .Elements("signature")
                           .Select(x => x.Attribute("encodedSignature").Value;

在任何一种情况下,您都可以使用foreach进行迭代 - encodedSignatures只是IEnumerable<string>