获取最后一个子节点的节点值


Getting node Value of last Child

这个问题可能看起来很愚蠢,但我无法找到太多的帮助,如何找到最后一个子节点的值使用PHP,即使它是一块蛋糕与JS。这是我的XML当前的样子:

<?xml version="1.0"?>
<files>
 <file>.DS_Store</file>
 <file>ID2PDF_log_1.xml</file>
 <file>ID2PDF_log_12.xml</file>
 <file>ID2PDF_log_15.xml</file>
</files>

下面是php代码:

$filename = 'files.xml'; //my xml file name
$dom = new DomDocument();
$dom->load($filename);
$elements = $dom->getElementsByTagName('file');
echo $elements->lastChild(); // This is obviously not working
/*I get an error that I am trying to access an undefined method in DOMNodeList. Now, I know
that lastChild is a property of DOMNode. But I can't figure out how I can change my code to 
get this to work.*/  

我正在尝试输出

ID2PDF_log_15.xml
谁能告诉我怎么做这件事?

注::我不想改变xml文件结构,因为我是通过脚本创建它,我是一个懒惰的程序员。但是,我确实做了一些研究来得出这个结论。没有帮助。

我确实尝试获得节点"文件"中的元素数量,然后使用item(#),但这似乎也不起作用。

感谢<<p> 解决方案/strong>
$filename = 'files.xml';
$dom = new DomDocument();
$dom->load($filename);
$elements = $dom->getElementsByTagName('file')->length;
echo 'Total elements in the xml file:'.$elements."'n";
$file = file_get_contents('files.xml');
$xml = simplexml_load_string($file); 
$result = $xml->xpath('file');
echo "Last element".$result[$elements-1]."'n";

我稍后会把它写得更整洁一些。但是,我觉得我应该把答案分享给将来的新用户。

应该可以:

$elements->xpath('root/child[last()]');

阅读xpath

或者,我建议计算元素的数量,然后使用该计数锁定最后一个元素:

$file_count = $elements->getElementsByTagName('file')->length;
$elements[$file_count];

我是这样做的:

$elements = $dom->getElementsByTagName('file')->item(0);
echo $elements->lastChild->nodeValue;