PHP: как получить доступ к последнему элементу в XML-файле

У меня есть файл XML, который я хочу иметь доступ к последнему элементу в файле. (ПРИМЕЧАНИЕ: файл динамически обновляется, и последние значения всегда находятся в последнем элементе:

<?xml version="1.0"?> 

 <tran> <balance>25000</balance> <amount>560</amount> </tran> <tran> <amount>5999</amount> <balance>30999</balance> </tran> <tran> <amount>5000</amount> <balance>20000</balance> </tran> <tran> <amount>8923</amount> <balance>25000</balance> </tran> 

Я хочу иметь доступ к этому последнему узлу.

Как это сделать, используя Php Simple XML?

благодаря

Во-первых, ваш XML нуждается в родительском узле (в приведенном ниже примере я вставил элемент «trans»). Затем попробуйте этот xpath:

 <?php $xmlstr=<<<EOXML <?xml version="1.0"?> <trans> <tran> <balance>25000</balance> <amount>560</amount> </tran> <tran> <amount>5999</amount> <balance>30999</balance> </tran> <tran> <amount>5000</amount> <balance>20000</balance> </tran> <tran> <amount>8923</amount> <balance>25000</balance> </tran> </trans> EOXML; $xml =new SimpleXMLElement($xmlstr); $last = $xml->xpath("/trans/tran[last()]"); var_dump($last); ?> 

Попробуй это :

 <?php $xmlstr = <<<XML <?xml version="1.0"?> <transactions> <tran> <balance>25000</balance> <amount>560</amount> </tran> <tran> <amount>5999</amount> <balance>30999</balance> </tran> <tran> <amount>5000</amount> <balance>20000</balance> </tran> <tran> <amount>8923</amount> <balance>25000</balance> </tran> </transactions> XML; $elements = new SimpleXMLElement($xmlstr); $last_element = $elements->tran[count($elements)-1]; print_r($last_element); ?> 

Вывод :

 SimpleXMLElement Object ( [amount] => 8923 [balance] => 25000 ) 

Пытаться

 $xmlString = '<?xml version="1.0"?> <doc> <tran> <balance>25000</balance> <amount>560</amount> </tran> <tran> <amount>5999</amount> <balance>30999</balance> </tran> <tran> <amount>5000</amount> <balance>20000</balance> </tran> <tran> <amount>8923</amount> <balance>25000</balance> </tran> </doc>'; $xml = simplexml_load_string($xmlString); $var = end($xml); $var = end($var); var_dump($var); 

Вывод

 object(SimpleXMLElement)[5] public 'amount' => string '8923' (length=4) public 'balance' => string '25000' (length=5) 

Вы можете просто подсчитать элементы «tran»

 //value of $i is the total count of tran element in xml $last_element_amount = $xml->tran[$i]['amount']; $last_element_balance = $xml->tran[$i]['balance'];