从PHP生成XML输出
我已经检查了很多示例代码,但仍在努力使矿山正常工作。我正尝试从我的PHP脚本生成XML输出。从PHP生成XML输出
的login.php
<?php
mysql_connect("localhost", "root", "") or die("cannot connect");
mysql_select_db("ConquestOfLancaster") or die("cannot select DB");
$username = $_REQUEST['username'];
$password = sha1($_REQUEST['password']);
$username = mysql_real_escape_string($username);
$domDoc = new DOMDocument;
$rootElt = $domDoc->createElement('root');
$rootNode = $domDoc->appendChild($rootElt);
$sql = "SELECT user_id, user_name FROM tbl_user WHERE user_name='$username' and user_pass='$password'";
$result = mysql_query($sql);
$count=mysql_num_rows($result);
if($count > 0){
//echo("welcome");
$rootAtr = $domDoc->createAttribute('success');
$rootAtrVal = $domDoc->createTextNode('TRUE');
$rootAtr->AppendChild($rootAtrVal);
$rootElt->AppendChild($rootAtr);
$subElt = $domDoc->createElement('username');
$subNode = $rootNode->appendChild($subElt);
$textNode = $domDoc->createTextNode($username);
$subNode->appendChild($textNode);
echo htmlentities($domDoc->saveXML());
} else{
//echo("not exist");
$rootAtr = $domDoc->createAttribute('success');
$rootAtrVal = $domDoc->createTextNode('FALSE');
$rootAtr->AppendChild($rootAtrVal);
$rootElt->AppendChild($rootAtr);
echo htmlentities($domDoc->saveXML());
}
?>
和浏览器的输出是
<?xml version="1.0"?> <root success="TRUE"><username>user1</username></root>
我的主要问题是,与此PHP交互我的iOS应用程序无法解析这个结果。我做错了什么?
您是否尝试取出htmlentities
?
当你发送的是:
<xml version ...
不
<?xml version="1.0"?> <root success="TRUE"><username>user1</username></root>
像你想象的
有一种方法可以将它打印为真正的XML输出?我已经删除了htmlentities,现在屏幕上什么也没有。我是PHP编程新手,仍在挣扎。对不起,傻傻的问题.. – OutOfBoundsException
你应该得到user1在屏幕上,如果你没有发送正确的标题它是正确的输出,你总是可以尝试查看页面源。并且要确保在if语句的两个地方用'echo $ domDoc-> saveXML();'替换'echo htmlentities($ domDoc-> saveXML());''。 –
呜呼!!!我改变了你的建议并添加了标题('Content-Type:application/xml');现在,看起来像XML输出:)然而,在顶部说:“这个XML文件似乎没有任何与它相关的样式信息,文档树如下所示。”需要担心? – OutOfBoundsException
,这是非常错误的第一件事就是用depricated mysql_ *命令集。使用PDO或mysqli –
这会改变XML生成的方式吗?我的意思是从我这边来看是一个重要的错误? – OutOfBoundsException
不会更改xml,但在新代码中使用过时的不受支持的技术是个不错的主意。 http://ca1.php.net/manual/en/function.mysql-connect.php –