这个问题可能看起来很愚蠢,但我无法找到关于如何使用 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
谁能告诉我如何完成这项工作?
PS:我不想更改xml文件结构,因为我是通过脚本创建的,而且我是一个懒惰的程序员。但是,我确实做了我的研究来得到这个。没有帮助。
我确实尝试获取节点“文件”中的元素数量,然后使用 item(#),但这似乎也不起作用。
谢谢
解决方案
$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";
稍后我会让这个更整洁。但是,只是认为我应该在未来的任何新用户中分享答案。