2012-12-27 81 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>"; 
?>