编程语言
首页 > 编程语言> > php – 获取最后一个Child的节点值

php – 获取最后一个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

谁能告诉我如何完成这项工作?

P.S.:我不想更改xml文件结构,因为我是通过脚本创建的,而且我是一个懒惰的程序员.但是,我确实做了我的研究才得到这个.没有帮助.

我确实尝试获取节点“文件”中的元素数量,然后使用项目(#),但这似乎也没有用.

谢谢

$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()]');

Read up about xpath

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

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

标签:php,xml,xmlnode
来源: https://codeday.me/bug/20190725/1536092.html