CuriousDev
CuriousDev

Reputation: 49

Expression must evaluate to node set in Xpath error while trying to get value

I am getting error while trying to get nodes which has value of Home and Auto. Any help is appreciated.

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

I like to fetch nodes under

<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>

I would like to use xpath only and would like to fetch entire coverage tag when it has CoverageLimitName as home and auto

Upvotes: 1

Views: 1456

Answers (1)

Mathias M&#252;ller
Mathias M&#252;ller

Reputation: 22617

My educated guess is that you want the following:

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

Which, for the document you show, would return both Coverage elements. (Given that the namespaces are properly dealt with.)

We have to guess because your sample XML document lacks a namespace declaration and because you did not tell us what exactly you are looking for.

Upvotes: 1

Related Questions