我使用php混淆输出xml,我想打印原始xml
<?php
header('Content-type: text/xml');
$xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$xml.="<entry>";
$xml.="<dataset>";
$xml.="</dataset>";
$xml.="</entry>";
print ($xml);
XML Parsing Error: XML or text declaration not at start of entity
Location: http://localhost/api/dataset/11111
Line Number 3, Column 1:<?xml version="1.0" encoding="UTF-8"?><entry><dataset></dataset></entry>
^
但是当我使用
更改它时<?php
header('Content-type: text/xml');
$xml="<root><name>sample_name</name></root>";
print ($xml);
它有效,但后来我添加了xml版本和编码信息,它再次出错
<?php
header('Content-type: text/xml');
$xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$xml.="<root><name>sample_name</name></root>";
print ($xml);
XML Parsing Error: XML or text declaration not at start of entity
Location: http://localhost/api/dataset/100039
Line Number 3, Column 1:<?xml version="1.0" encoding="UTF-8"?><root><name>sample_name</name></root>
似乎无法添加标题信息并且无法使用字符串连接运算符???如何打印xml和标题一样(&#39;内容类型:text / xml&#39;)
<?xml version="1.0" encoding="UTF-8"?>
<entry>
<dataset>
</dataset>
</entry>
我使用yii框架,actionView
$this->renderPartial('view',array('model'=>$model,'type'=>$type));
当我在源代码中检查这个错误时,它可以看到xml信息,但是之前有两个空行?可能是XML解析错误的原因,但我怎么能删除那些空行?在view.php和action函数中,我没有找到任何回显/打印空白行。
XML Parsing Error: XML or text declaration not at start of entity
Location: http://localhost/api/dataset/11111
Line Number 3, Column 1:<?xml version="1.0" encoding="UTF-8"?><entry><dataset></dataset></entry>
^
答案 0 :(得分:0)
为什么不使用'封装你的xml文本,以便你的“可以在文本中使用。也使用特殊字符函数,所以html不会认为它是一个代码。
$xml = '<?xml version="1.0" encoding="UTF-8"?><entry><dataset></dataset></entry>';
echo htmlspecialchars($xml, ENT_XML1);
我注意到你的标题内容类型是小写字母。我不知道这是否重要。你能换成资本吗?
header('Content-Type: text/xml');
答案 1 :(得分:0)
你可以这样做:
<?php
echo <<<END
<?xml version="1.0" encoding="UTF-8"?>
<entry>
<dataset>
</dataset>
</entry>
END
?>
或者你可以这样做:
<?xml version="1.0" encoding="UTF-8"?>
<entry>
<dataset>
<?php
/* We can put code for something here */
?>
</dataset>
</entry>