2012-12-27 78 views
-1

我想用PHP来创建一个XML文件中的一些XML,但我不能让它的工作生成XML与PHP

XML文件

<?xml version="1.0"> 
<streams> 
    <stream>test</stream> 
</streams> 

的PHP

<?php 
    header("Content-type: text/xml"); 
    $xml = simplexml_load_file("t.xml"); 

    $html = "<?xml version='1.0'>"; 
    $html = $html . "<streams>"; 
    foreach($xml->stream as $stream) 
    { 
    $html= $html . "<stream>"; 
    $html = $html . "<![CDATA[" . $stream->title . "]]>"; 
    $html= $html . "</stream>"; 
    } 
    $html = $html . "</streams>"; 

    echo $html; 
?> 

错误

Error: This page contains the following errors: error on line 2 at column 1: 
Extra content at the end of the document Below is a rendering of the page up 
to the first error. 
+3

问题是什么? –

+2

问题是什么?为什么它不工作?什么是错误..你能解释吗? –

+3

解释什么是问题,表现出你的努力和错误,您越来越 – NoNaMe

回答

2

我会用PHP simplexml从字符串

$xml = new SimpleXMLElement('<xml/>'); 
$streams = $xml->addChild('streams'); 
$steams->addChild('stream', 'data'); 
echo $xml->asXML(); 

只是作为小费构建XML,不,还有用于连接字符串的简写:

$html = "<?xml version='1.0'?>"; 
$html .= "<streams>"; 
... 
+0

”除了PHP中的连接之外,这种方式不起作用,就像这样:“为什么?你的意思是'$ html = $ html。 'a''不起作用,'$ html。='a''起作用? –

+0

OP字符串连接没有任何问题;它会起作用,如果有点笨拙。我会建议你展示什么,但这不是要求。另外,OP使用SimpleXML加载文件,这似乎是问题所在。之后,输出连接的XML字符串可以像这样导出,如果再次难以使用并且不推荐。问题在于其他地方,尽管这些都是很好的建议。 –

1

首先: xml被破坏,它必须是:

<?xml version="1.0"?> 
-------------------^ 

(the问号缺失,这也是PHP脚本中失踪)

然后:里面有<stream/>没有标题元素

与此XML预计它将工作:

<?xml version="1.0"?> 
<streams> 
    <stream><title>test</title></stream> 
</streams> 
+1

演示:http://codepad.org/NwD2INxf –

-1

我让它与下面的代码一起工作。我不知道它是否是最好的方法,但它的工作原理。 我会输入这个作为评论,但我不能让“代码”格式工作。

<?php 
header("Content-type: text/xml"); 
echo "<?xml version='1.0' encoding='ISO-8859-1'?>"; 
    $source = "t.xml"; 
    $stream = new SimpleXMLElement($source,null,true); 

    echo "<streams>"; 
    foreach($stream as $stream) { 
    echo "<stream>"; 
    echo "<![CDATA[ . {$stream->title} . ]]>"; 

    echo "</stream>"; 
    } 
    echo "</streams>"; 
?>