当我使用下面的代码并在本地解析xml时,它可以正常工作,但是当在服务器上传相同的脚本时,它会显示错误.
注:我检索到的$lng,并$lat从查询字符串,并将其在本地工作正常.
$lng=$_GET['lng'];
$lat=$_GET['lat'];
$conn=new LoginSystem();
$conn->connect();
$dom = new DOMDocument("1.0");
$query="select catch_id,catch_details,image from mycatch where longitude='$lng' AND latitude='$lat'";
$result = mysql_query($query);
if (!$result) {
die("Invalid query: " . mysql_error());
}
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
$node = $dom->createElement("mycatch");
$node = $dom->appendChild($node);
foreach ($row as $fieldname => $fieldvalue) {
$child = $dom->createElement($fieldname);
$child = $node->appendChild($child);
$value = $dom->createTextNode($fieldvalue);
$value = $child->appendChild($value);
}
}
$conn->disconnect();
$xml_string …Run Code Online (Sandbox Code Playgroud) 我必须验证 XML 文档,以便它不会接受无效的 XML 文档。
我这样做是为了处理无效文档:
xml ||= Nokogiri::XML xml_data do |config|
config.strict
end
rescue Nokogiri::XML::SyntaxError => e
puts "caught exception: #{e}"
else
#further processing if no error
Run Code Online (Sandbox Code Playgroud)
但即使对于有效的 XML 文档,它也显示:
caught exception: Extra content at the end of the document
Run Code Online (Sandbox Code Playgroud)
我正在使用的示例 XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?