从XML中提取精确值

时间:2014-10-02 10:07:53

标签: c# xml

我正在尝试从某些XML获取XML值,这是我的XML

<SearchResult>
  <Entity id="192418" defaultrole="TEMP_JOB_R">
    <Property name="JOB_GEN">
      <Attribute name="REFERENCE">192418</Attribute> 
    </Property>
  </Entity>
</SearchResult>

我试过这个

var reference = (
  from el in result.XPathSelectElements("Entity")
  select el.Attributes("REFERENCE").Select(x => x.Value).SafeParse<long>().FirstOrDefault()
);

但是引用总是等于0 如何选择参考属性并仅回退其值?

1 个答案:

答案 0 :(得分:3)

如果您对使用XPath表达式的解决方案感兴趣,以下XPath将选择<Attribute>属性等于name的{​​{1}}元素:

REFERENCE

或者如果您只期望单一结果:

var reference = (from el in result.XPathSelectElements("//Entity/Property/Attribute[@name='REFERENCE']")
                 select (long)el
                 );

附注:如上所示,你可以cast XElement to long