很难解析使用 POST 从 Web 表单创建的 XML。
这是场景:
1) 用户来到一个网页,在一个文本字段中输入他们的名字,然后点击提交
2) 这会调用一个 PHP 文件(称为“makeXML.php”),该文件会生成一个 XML 文件,该文件包含一个名为“currentUserName”的标签中的用户名
3) iPhone App 然后加载这个“makeXML.php”文件(使用'loadXMLByURL')并解析它,专门寻找将“currentUserName”标签的内容输出到一个UILabel 对象中。
应该很简单——但由于某种原因,“currentUserName”标签的内容在应用程序中是空的——尽管它们在浏览器中生成的 XML 代码中显示得非常好。
更奇怪的是,如果我在 PHP 文件(“makeXML.php”)中将值硬编码为“uName”,而不是从 FORM 中获取该值(使用 $_POST[“userName”];) - 这一切都运作良好。我能够从“currentUserName”标签中获取值并将其输出到 UILabel 对象。
由于某种原因,NSXMLParser 似乎只是不喜欢 POST 的值。
有任何想法吗?
这是代码:
门户网站.html:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Web-Form</title>
</head>
<body>
<form name="form1" method="post" action="makeXML.php">
<p>Enter your name:</p>
<p>
<input name="userName" type="text" />
</p>
<p>
<input type="submit" value="SUBMIT" />
</p>
</form>
</body>
</html>
这是“makeXML.php”:
<?php
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
echo "<document>";
$uName = $_POST["userName"];
echo "Here is the name you typed:";
echo "<br/>";
echo "<theUsersName>$uName</theUsersName>";
echo "</document>";
?>
这是 makeXML.php 的输出代码:(请注意,此代码全部出现在一行上 - 它应该是这样的吗?“br”标签不应该工作并在那里强制换行吗?)
<?xml version="1.0" encoding="UTF-8" ?><document>Here is the name you typed:<br/><theUsersName>johnson</theUsersName></document>
同样,请注意,如果我更换:
$uName = $_POST["userName"];
与普通旧:
$uName = "John";
一切正常, “约翰”这个名字正确出现在我的 UILabel 中......