2017-04-16 66 views
0

我想从SQL查询中创建XML文件。但我的问题是,它未能每一次......这是我的代码:从SQL查询中创建XML文件

$stln = $database->query('SELECT name FROM `wp_all_import_xml` GROUP BY name'); 

$dom = new DOMDocument('1.0', 'utf-8'); 
$dom->preserveWhiteSpace = false; 
$dom->formatOutput = true; 

while($row = $stln->fetch_row()){ 
    $product = $dom->createElement('product'); 
    $title = $dom->createElement('title'); 
    $title->nodeValue = $row["name"][0]; 
    $product->appendChild($title); 
    $dom->appendChild($product); 
} 

$dom->save('httpdocs/cronjob/data/cronjob.xml'); 

的cronjob.xml文件应该是这样的结尾:

<product> 
    <title>iPhone 7</title> 
</product> 
<product> 
    <title>iPhone 6</title> 
</product> 
<product> 
    <title>iPhone 5</title> 
</product> 

但每次我结束时间了它看起来像这样一个空的XML文件:

<?xml version="1.0" encoding="utf-8"?> 

而且我的浏览器是通过调用cronjob.xml文件告诉我:

此页面包含以下错误:

第5行第1列出现错误:文档末尾的额外内容 下面是页面渲染到第一个错误。

有谁知道我的错误在哪里以及我如何修复它?

更新: XML文件被正确创建。我看到了标题。但是还有另外一个问题......就是说我得到这样的错误:

PHP Warning: main(): unterminated entity reference   Evil in /Users/spacer/Desktop/spacer/Test/spiel.php on line 21 
PHP Warning: main(): unterminated entity reference Scenario Pack in /Users/spacer/Desktop/spacer/Test/spiel.php on line 21 
PHP Warning: main(): unterminated entity reference Conquer The Ultimate Collection in /Users/spacer/Desktop/spacer/Test/spiel.php on line 21 
PHP Warning: main(): unterminated entity reference   Mystics in /Users/spacer/Desktop/spacer/Test/spiel.php on line 21 

例如,发生这种情况的名称是这样的名称:Csx Nre 3Gs 21B Genset & New Haven Fl9 Twin Pack。但我不知道,他为什么不能处理这个名字。

有什么想法吗?

问候和谢谢你!

+2

XML可能不像你的榜样,它不是一个有效的XML(超过1种元素)。 –

+0

所以我被迫改变? –

+0

您需要检查是否确实在提取产品。我不能确定,因为缺少太多的代码,但很可能您的XML不包含任何产品,因为您没有提取任何产品。例如,在某些情况下,您必须先执行()查询,然后才能获取结果。 –

回答

0

正如Mateusz啜说你不能有多个根元素,尝试类似的东西:

<?xml version="1.0" encoding="utf-8"?> 
<products> 
    <product> 
     <title>iPhone 7</title> 
    </product> 
    <product> 
     <title>iPhone 6</title> 
    </product> 
    <product> 
     <title>iPhone 5</title> 
    </product> 
</products> 
+0

我发现了错误...我更新了这个问题。因为我不知道PHP需要什么... –