-2
$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);

上記の私のコードは私を返します:

<results>
   <course>1111</course>
   <books>
      <isbn id="0134582667" common="10" before="4" same="1" after="5" total="248"/>
      ..... 
   </books>
</results>

このページには、次のエラーが含まれています。

12行目の772行目のエラー:ドキュメントの先頭でのみ許可されるXML宣言以下は、最初のエラーまでのページのレンダリングです。

4

1 に答える 1

0

アイテムを配列に取得してから、配列を次のように並べ替えることができます...

書籍.xml

<?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>

test.php

$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>";
于 2013-02-22T13:28:22.270 に答える