2013-08-27 4 views
0

Я новичок в PHP части так, пожалуйста, помогите мне out.This мой PHP скрипт, который поможет создать файл XMLкак сохранить данные XML в одном файле

<?php 

    mysql_connect('localhost', 'root', 'root'); 
    mysql_select_db('dcu'); 


    $sql = "SELECT meterId FROM meter"; 
    $res = mysql_query($sql); 
    $xml = new XMLWriter(); 

$xml->openURI("php://output"); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->startElement('meteries'); 
while ($row = mysql_fetch_assoc($res)) { 


    $xml->startElement("meterId"); 
    $xml->writeRaw($row['meterId']); 
    $xml->endElement(); 

    } 

$xml->endElement(); 


    header('Content-type: text/xml'); 
    $xml->flush(); 
    ?> 
    After running this php script i got this xml file in my terminal as well as in browser 

    <?xml version="1.0"?> 
    <cemeteries> 
<meterId>1</meterId> 
<meterId>2</meterId> 
</cemeteries> 

Мой вопрос заключается в том, чтобы сохранить это генерируется XML в другом файле XML

спасибо

ответ

1

Если вы хотите, чтобы сохранить его на сервере, вы можете сделать так:

<?php 

mysql_connect('localhost', 'root', 'root'); 
mysql_select_db('dcu'); 

$sql = "SELECT meterId FROM meter"; 
$res = mysql_query($sql); 
$xml = new XMLWriter(); 

$xml->openMemory(); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->startElement('meteries'); 

while ($row = mysql_fetch_assoc($res)) 
{ 
    $xml->startElement("meterId"); 
    $xml->writeRaw($row['meterId']); 
    $xml->endElement(); 
} 

$xml->endElement(); 

$content = $xml->flush(); 

$fp = fopen('data.xml', 'w'); 
fwrite($fp, $content); 
fclose($fp); 

header('Content-type: text/xml'); 
echo $content; 

В fopen() в режиме 'w', если файл не существует, PHP попытается его создать. Убедитесь, что PHP имеет достаточные права на запись.

+0

после внесения изменений файл создается, но в этом файле ничего не является их а также, когда я пытаюсь запустить в браузере, он получил эту ошибку XML Parsing Error: junk after document element Местоположение: http: // localhost/third. php Номер строки 6, колонка 1: – user2663217

+0

спасибо за помощь, но она не работает – user2663217

+0

Кажется, что метод flush() не возвращает содержимое xml-файла при использовании openURI(), вместо этого он возвращает количество написанных байт. Когда вы используете openMemory(), он должен возвращать содержимое xml. Я скорректировал свой ответ, чтобы он соответствовал потребностям. Удачи! –

Смежные вопросы