我正在使用XMLWriter来创建xml.Below是我的代码,它工作正常。
<?php
header("Content-Type: text/xml;");
$writer = new XMLWriter();
$writer->openMemory();
$writer->startDocument('1.0');
$writer->setIndent(4);
$writer->startElement('epp');
$writer->startElement("command");
$writer->startElement("login");
$writer->writeElement('clID', 'hello'); //username
$writer->writeElement('pw', 'abcdefg'); //password
$writer->endElement(); //login
$writer->endElement(); //command
$writer->endElement(); //login
$writer->endDocument();
$file = $writer->outputMemory(true);
echo $file;
?>
如果使用下面的代码,我收到错误“获取错误”下面是第一个错误的页面渲染。“。
<?php
$time = time();
echo $time;
header("Content-Type: text/xml;");
$writer = new XMLWriter();
$writer->openMemory();
$writer->startDocument('1.0');
$writer->setIndent(4);
$writer->startElement('epp');
$writer->startElement("command");
$writer->startElement("login");
$writer->writeElement('clID', 'hello'); //username
$writer->writeElement('pw', 'abcdefg'); //password
$writer->endElement(); //login
$writer->endElement(); //command
$writer->endElement(); //login
$writer->endDocument();
$file = $writer->outputMemory(true);
echo $file;
?>
错误:对于上面的代码块,下面是错误:我在谷歌浏览器中得到这个:
This page contains the following errors:
error on line 1 at column 1: Document is empty
Below is a rendering of the page up to the first error.
如果我没有使用标题(“Content-Type:text / xml;”);然后上面的代码块正在工作,但时间正在显示,而不是给出xml格式。以下是错误:
1354510317 hello abcdefg
修改 在Mozilla,我正在低于erro:
XML Parsing Error: not well-formed
Location: http://localhost/example.php
Line Number 1, Column 11:1354512268<?xml version="1.0"?>
----------^
如果我的代码有任何问题,请建议。
如何“下面是第一个错误的页面渲染。”错误可以 被删除?
答案 0 :(得分:8)
如果你回应XML内容之外的时间,那么它就不再是有效的XML,这就是浏览器抱怨的原因。
将内容类型指定为text / xml告诉浏览器解析XML并以可读格式呈现它。
如果您查看失败代码的来源,您应该看到所遵循的时间是原始XML内容。
当您不发送text / xml内容类型时,它看起来不正确的原因是浏览器基本上将XML标记视为HTML并决定它们不会改变布局,因此它只显示简单标签内的文本值。
如果你想在页面中混合普通输出和XML输出,你需要很好地格式化XML并对其进行HTML编码。
答案 1 :(得分:2)
header("Content-Type: text/xml;");
您在那里使用什么类型的标头,以便输出应采用该格式。
示例:
header("Content-Type: text/xml;");
output : coutput in xml format
header("Content-Type: text/php;");
output : output in php format
答案 2 :(得分:-1)
很多时候,不需要结束标记的HTML元素都会出现此错误。
Bad: <img src="https://google.com">
Good: <img src="https://google.com"/>