Php 如何根据属性值对xml进行排序
上面的代码将返回给我:Php 如何根据属性值对xml进行排序,php,xml,Php,Xml,上面的代码将返回给我: $books = new DOMDocument(); $books->load( 'books.xml' ); $id = $_GET['id']; $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml .= '<results><course>'.$id.'</course>'; $xml .= '<books>'; $items = $bo
$books = new DOMDocument();
$books->load( 'books.xml' );
$id = $_GET['id'];
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<results><course>'.$id.'</course>';
$xml .= '<books>';
$items = $books->getElementsByTagName("item");
foreach( $items as $item )
{
$item_id = $item->getAttribute("id");
if($id == $item_id){
....
}
}
$xml .= '</books></results>';
header ("Content-Type:text/xml");
echo ($xml);
此页面包含以下错误:
第12列第772行出错:仅允许在
下面文档的开头是页面到第一页的呈现
错误
您可以将项目放入一个数组,然后对数组进行排序,类似这样 books.xml
<results>
<course>1111</course>
<books>
<isbn id="0134582667" common="10" before="4" same="1" after="5" total="248"/>
.....
</books>
</results>
test.php
<?xml version="1.0"?>
<results>
<course>1111</course>
<books>
<isbn id="0134582667" common="10" before="4" same="1" after="5" total="248">248</isbn>
<isbn id="0134582667" common="10" before="4" same="1" after="5" total="3">3</isbn>
<isbn id="0134582667" common="10" before="4" same="1" after="5" total="224">224</isbn>
<isbn id="0134582667" common="10" before="4" same="1" after="5" total="25">25</isbn>
</books>
</results>
在询问有关堆栈溢出的问题之前,请始终先用谷歌搜索,这样会占用其他用户的时间。php排序xml的第一个结果包含完整答案。谢谢可能重复尝试该解决方案已不起作用,这就是为什么在此处发布。然后添加该上下文并指定不起作用的内容。不要只问一份没有背景信息也没有参考原件的复制件。似乎是一份完全相同的复制件。看我的答案。
$books = new DOMDocument();
$books->load( 'books.xml' );
$items = $books->getElementsByTagName("isbn");
$nodeArray = array();
foreach ($items as $item) {
$nodeArray[$item->getAttribute('total')] = $item;
}
ksort($nodeArray);
echo "<pre>". print_r($nodeArray, true) ."</pre>";