Tom Reinders
Tom Reinders

Reputation: 63

Xpath to get element value

I am trying to use xpath to get the value of Odometer out of my xml file:

<?xml version="1.0"  encoding="UTF-8"?>
<CWEAI xmlns="http://www.carrierweb.com/Schema/CWEAI_schema_1.0/cwReturnTruckCanbusHistory">

  <cwReturnTruckCanbusHistory>
    <ID>549094411</ID>
    <CWVehicleID>109755</CWVehicleID>
    <Odometer>1374031</Odometer>
    <Fuel>452800</Fuel>
    <FuelLevel>1000</FuelLevel>

  </cwReturnTruckCanbusHistory>
</CWEAI>

I have tried about anything but I can not get a working xpath:

CWEAI/cwReturnTruckCanbusHistory/Odometer

CWEAI/cwReturnTruckCanbusHistory/Odometer/text

CWEAI[@xmlns="http://www.carrierweb.com/Schema/CWEAI_schema_1.0/cwReturnTruckCanbusHistory"]/cwReturnTruckCanbusHistory/Odometer

Upvotes: 6

Views: 44007

Answers (1)

splash58
splash58

Reputation: 26153

text is Xpath function, so use it in the proper way

/CWEAI/cwReturnTruckCanbusHistory/Odometer/text()

It results in Text='1374031'

Working in php:

$xml = simplexml_load_string($str);
$ns = $xml->getNamespaces(true); 
$xml->registerXPathNamespace('c', current($ns));

$target = $xml->xpath('//c:CWEAI//c:cwReturnTruckCanbusHistory/c:Odometer/text()');
echo $target[0];

demo on 3v4l.org

Upvotes: 11

Related Questions