如何将文本写入XML文件?

问题描述:

,当我使用的fopen我收到以下错误某些原因:如何将文本写入XML文件?

未能打开流:HTTP包装不支持/examplefolder/examplefile.php

写连接当我使用这个:

<?php 
$myFile = "http://url.com/" . $_COOKIE['user'] . "/current_pro_pic.xml"; 
$xmlw = new XMLWriter; 
$xmlw->setIndent(true); 
$xmlw->startDocument('1.0', 'UTF-8'); 
$xmlw->startElement('user_current_pro_pic'); 
$xmlw->writeElement('full_url', "<![CDATA[sometexthere*]]>"); 
$xmlw->writeElement('time', date('l F jS Y ') . 'at' . date(' h:i A')); 
$xmlw->endElement(); 
$xmlw->endElement(); 
$xmlw->endElement(); 
$xmlw->endDocument(); 
?> 

它吐出了这一点:

Warning: XMLWriter::setIndent() [xmlwriter.setindent]: Invalid or unitialized XMLWriter object in *** on line 4 

Warning: XMLWriter::startDocument() [xmlwriter.startdocument]: Invalid or unitialized XMLWriter object in *** on line 5 

Warning: XMLWriter::startElement() [xmlwriter.startelement]: Invalid or unitialized XMLWriter object in ***p on line 6 

Warning: XMLWriter::writeElement() [xmlwriter.writeelement]: Invalid or unitialized XMLWriter object in *** on line 7 

Warning: XMLWriter::writeElement() [xmlwriter.writeelement]: Invalid or unitialized XMLWriter object in *** on line 8 

Warning: XMLWriter::endElement() [xmlwriter.endelement]: Invalid or unitialized XMLWriter object in *** on line 9 

Warning: XMLWriter::endElement() [xmlwriter.endelement]: Invalid or unitialized XMLWriter object in *** on line 10 

Warning: XMLWriter::endElement() [xmlwriter.endelement]: Invalid or unitialized XMLWriter object in *** on line 11 

Warning: XMLWriter::endDocument() [xmlwriter.enddocument]: Invalid or unitialized XMLWriter object in *** on line 12 

有谁知道为什么会发生这种情况?它不是文件权限,也不是fyi。

+0

您需要使用的文件路径,而不是一个URL的。 – 2011-04-01 22:48:04

标准从网页获取,总是只读。服务器得到一个问题,并向您发送答案。如果你想写XML,你需要发布它,或者将它作为get的变量发送(后者是空间受限的)

+0

我该怎么做明智的代码? – 2011-04-01 22:47:06

+0

看看http://uk2.php.net/manual/en/function.http-post-data.php 正如Pekka建议,如果该网站是你自己的,你可以直接做到本地文件,但是,假设你通过URL调用它,你可能没有直接访问..后会是要走的路 – BugFinder 2011-04-01 22:51:31

+0

我通过不使用“http:// www ...等解决了这个问题”谢谢你的帮助! – 2011-04-01 23:24:19

你不能通过使用http url来引用它来编写文件。即使该文件位于同一台服务器上,也必须将文件系统路径指定给该文件。

必须调用像openMemory的开放*方法之一,openUri

$xmlw = new XMLWriter; 
$xmlw->openUri('path_to_save'); 
// ... or 
$xmlw->openMemory(); 
// ... youe code 
$xmlw->setIndent(true); 
// ...