如何在C#中使用linq从xml中读取特定的字段值

本文关键字:读取 字段 xml linq | 更新日期: 2023-09-27 17:58:07

这是我试图读取的xml。

在下面给定的xml中,我想读取"customfieldwalue",其中customfieldname="Fixed In Build"。

        - <customfield id="customfield_10021" key="x">
          <customfieldname>Date of First Response</customfieldname> 
        - <customfieldvalues>
          <customfieldvalue>Thu, 27 Mar 2014 00:28:36 -0700</customfieldvalue> 
          </customfieldvalues>
          </customfield>
        - <customfield id="customfield_10034" key="x">
          <customfieldname>Fixed in Build</customfieldname> 
        - <customfieldvalues>
        - <customfieldvalue>
          <a href="url" title="[M8960AAAAANLGD2322586.1] - Apps Crash - Internal error: (FSR = 0x5) (PC = msm_rpmrs_lowest_limits+0x8c/0x240)">144148</a> 
          </customfieldvalue>
          </customfieldvalues>
          </customfield>

我的代码是:

 var result1 = from feed in XDocument.Parse(_result.ToString()).Descendants("customfields")
                  .Where(x => x.Element("customfieldname").Value == "Fixed in Build")
                  .Elements("customfieldvalues").First()
                  .Select(
                      x => x.Element("customfieldvalue").Value
                  );

我也尝试过不同的方法来获得结果,但没有使用

有人帮我做这件事。

如何在C#中使用linq从xml中读取特定的字段值

customfields不在示例中,但我猜它是围绕它的节点。你可能需要失去一个:

//.Descendants("customfields")
  .Descendants("customfield")
  .Where(...)

或者,当您想更精确地了解XML结构时:

 .Descendants("customfields")
 .Elements("customfield")
 .Where(...)