我想从头开始读取xml文件,假设我的xml是这样的:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note>
<to>Samy</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't Miss me this weekend!</body>
</note>
我需要先阅读最后一个注释,然后才使用代码
$x = $xmldoc->getElementsByTagName('note');
$nofnews = $xmldoc->getElementsByTagName('note')->length;
for ($i = 0; $i < $nofnews; $i++) {
$item_title = $x->item($i)->getElementsByTagName('to')
->item(0)->nodeValue;
$item_link = $x->item($i)->getElementsByTagName('from')
->item(0)->nodeValue;
}
提前谢谢
答案 0 :(得分:1)
getElementsByTagName
会返回DOMNodeList
。您可以按照它的数字索引(0到length-1)访问每个元素,但只是从结束开始,而不是从for循环开始,然后向下计数:
$x = $xmldoc->getElementsByTagName('note');
$nofnews = $x->length;
for ($i = $nofnews-1; $i > -1; $i--)
{
$item = $x->item($i);
$item_title = $item->getElementsByTagName('to')
->item(0)->nodeValue;
$item_link = $item->getElementsByTagName('from')
->item(0)->nodeValue;
}
这应该已经适合你了。
答案 1 :(得分:0)
我不确定我是否理解你的问题,但似乎你想开始阅读 XML文档的根元素的子元素是否相反?
(此外,您提供的示例内容来自此处:http://www.w3schools.com/PHP/php_xml_simplexml.asp)为什么不遵循他们的示例?
但无论如何,这应该可以解决问题:
<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach(array_reverse($xml->children()) as $child)
{
// process your child element in here
}
?>
- &GT;使用array_reverse()函数:http://www.w3schools.com/php/func_array_reverse.asp