如何在XML代码段中获取Value标记的值?

时间:2016-06-30 15:56:00

标签: xml linq linq-to-xml

在哪里学习如何通过Linq从XML获取值的好资源?

鉴于从Web服务返回的以下XML,我需要弄清楚如何获取Value标记中的值,知道可能有多个SubscriberFieldType标记。在这个例子中,我只希望Name标签后面的Value标签值为“DisplayName”。

{<GetSubscriberFieldsResult>
  <Result>true</Result>
  <ResultCode>0</ResultCode>
  <Message />
  <Count>1</Count>
  <SubscriberFields>
    <SubscriberFieldType>
      <Name>DisplayName</Name>
      <Value>John Smith</Value>
    </SubscriberFieldType>
  </SubscriberFields>
</GetSubscriberFieldsResult>}

2 个答案:

答案 0 :(得分:1)

这将返回值

var result = dox.Descendants().Where(n => n.Name == "Value").FirstOrDefault();

答案 1 :(得分:0)

好的,这似乎有效,希望这是一个很好的方法。

var displayName = subscriberFieldsResultXML.Root.Elements("SubscriberFields")
    .Descendants("SubscriberFieldType")
    .Where(i => (string)i.Element("Name") == "DisplayName")
    .Select(i => (string)i.Element("Value"))
    .FirstOrDefault();