我试图在browser.i中创建一个xml,如
$query2 = "SELECT * FROM user where user_id = 7";
$dbresult = mysqli_query($dbcon,$query2) or die('query error...');
$doc = new DomDocument('1.0');
$doc->formatOutput = true;
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
while($row = mysqli_fetch_array($dbresult)) {
$userId = $doc->createElement('UserId');
$userId = $root->appendChild($userId);
$value = $doc->createTextNode($row[0]);
$value = $userId->appendChild($value);
$psw = $doc->createElement('Password');
$psw = $root->appendChild($psw);
$value = $doc->createTextNode($row[2]);
$value = $psw->appendChild($value);
}
echo $doc->saveXML();
$doc->save("test.xml");
它只显示
等数据7 pwd123
但我想要像
这样的数据<xml>
<root>
<userId>7</userId>
<password>pwd123</password>
</root>
</xml>
该怎么办? 感谢
答案 0 :(得分:4)
你的脚本没有set Content-type header而php发送的default content-type header通常是Content-type: text/html
。
因此,客户端假定数据是一个html文档并解析并显示它
如果客户端/浏览器不“知道”您的文档包含的标签/元素(并且上下文很重要)http://www.w3.org/TR/html401/appendix/notes.html#notes-invalid-docs适用。
如果您“告诉”客户端输出是一个xml文档,它将/可以/应该相应地显示它。
if ( headers_sent() ) {
// can't set the content-type after output has been sent to the client
die('error');
}
else {
header('Content-type: text/xml'); // see http://en.wikipedia.org/wiki/XML_and_MIME
echo $doc->saveXML();
}
答案 1 :(得分:1)
更改标题内容类型text / xml
header('Content-type: text/xml');
$doc->saveXML();
答案 2 :(得分:0)
使用右键单击 - &gt;显示源代码命令