-1

我想使用 PHP 从 XML 文件创建一些 XML,但我无法让它工作

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.
4

3 回答 3

2

我会使用 php simplexml来构建 xml,而不是从字符串

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

就像提示一样,连接字符串有一个简写:

$html = "<?xml version='1.0'?>";
$html .= "<streams>"; 
...
于 2012-12-27T09:22:37.563 回答
1

首先:xml坏了,它必须是:

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

(问号不见了,PHP脚本中也不见了)

那么:里面没有title-element<stream/>

它将按预期使用此 xml:

<?xml version="1.0"?>
<streams>
  <stream><title>test</title></stream>
</streams>
于 2012-12-27T09:28:43.270 回答
-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>";
?>
于 2012-12-27T10:53:38.140 回答