Xpath获取元素值

Tom*_*ers 3 xml xpath

我正在尝试使用 xpathOdometer从我的 xml 文件中获取 的值:

<?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>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过任何事情,但我无法获得有效的 xpath:

CWEAI/cwReturnTruckCanbusHistory/Odometer

CWEAI/cwReturnTruckCanbusHistory/Odometer/text

CWEAI[@xmlns="http://www.carrierweb.com/Schema/CWEAI_schema_1.0/cwReturnTruckCanbusHistory"]/cwReturnTruckCanbusHistory/Odometer
Run Code Online (Sandbox Code Playgroud)

spl*_*h58 9

text 是 Xpath 函数,所以以正确的方式使用它

/CWEAI/cwReturnTruckCanbusHistory/Odometer/text()
Run Code Online (Sandbox Code Playgroud)

它导致 Text='1374031'

在 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];
Run Code Online (Sandbox Code Playgroud)

eval.in 上的演示