在尝试获取值时,表达式必须评估为Xpath错误中的节点集

时间:2015-12-14 17:14:34

标签: c# xml xpath

我在尝试获取具有Home和Auto值的节点时遇到错误。 任何帮助表示赞赏。

XElement coverage = vehicle.XPathSelectElement("s0:VehicleCoverage/s0:Coverages/[CoverageLimitName=('Auto' |'Home')]", namespaceManager);

我喜欢在

下获取节点
<Coverages>
  <Coverage>
    <CoverageLimitName>Home</CoverageLimitName>
    <OptionalCode1>WY</OptionalCode1>
    <OptionalCode2>Bodily Injury</OptionalCode2>
    </CoverageLimitValue>
    <Premium>166.00</Premium>
  </Coverage>
  <Coverage>
    <CoverageLimitName>Auto</CoverageLimitName>
    <CoverageLimitValue>
      <OptionalCode1>T</OptionalCode1>
      <OptionalCode2>Property Damage</OptionalCode2>
    </CoverageLimitValue>
    <Premium>88.00</Premium>
  </Coverage>
  <Coverage>
  </Coverage>
  ....
  </Coverage>
</Coverages>

我只想使用xpath,并希望在CoverageLimitName为home且auto

时获取整个coverage标记

1 个答案:

答案 0 :(得分:1)

我有根据的猜测是你需要以下内容:

/s0:VehicleCoverage/s0:Coverages/s0:Coverage[s0:CoverageLimitName = 'Auto' or s0:CoverageLimitName = 'Home']

对于您显示的文档,将返回两个Coverage元素。 (鉴于命名空间已妥善处理。)

我们必须猜测,因为您的示例XML文档缺少名称空间声明,因为您没有告诉我们您究竟在寻找什么。