在.NET中按属性值定位XML元素

时间:2011-01-21 00:33:19

标签: c# .net xml

我有一个xml文档,如下所示:

<?xml version="1.0" encoding="utf-8"standalone="yes"?>
<WorkItem TimeZone="Mountain Standard" Offset="-07:00:00">
 <RevisionFields>
  <Field ReferenceName="OriginalTestEstimate" Name="Estimated Test" Type="Double">
     <Value>5</Value>
  </Field>
  <Field ReferenceName="RemainingDevWork" Name="Remaining Dev" Type="Double">
     <Value>9</Value>
  </Field>
  <Field ReferenceName="RemainingTestWork" Name="Remaining Test" Type="Double">
     <Value>5</Value>
  </Field>
 ...

我正在调用的TFS服务将其作为XmlDocument对象提供给我。我正在尝试访问字段的Value部分。我可以使用workItem["WorkItem"]["RevisionFields"]来获取所有字段的数组,但是当我尝试使用这种表示法获取特定字段时,我会陷入困境。

由于设置了“名称”,我尝试使用它(即workItem["WorkItem"]["RevisionFields"]["Remaining Test"],但只返回null。

我需要做什么才能直接获取字段中的值? (我宁愿不必迭代所有字段。)

1 个答案:

答案 0 :(得分:4)

您可以使用XPath来检索节点:

/WorkItem/RevisionFields/Field[@Name='Remaining Test']/Value

查看SelectSingleNode() method(以及SelectNodes() method)。

相关问题