相关疑难解决方法(0)

第1行第2行出错:文档末尾的额外内容

当我使用下面的代码并在本地解析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)

php xml

23
推荐指数
4
解决办法
12万
查看次数

如何使用 Nokogiri 验证 XML?

我必须验证 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)

我究竟做错了什么?

ruby xml ruby-on-rails nokogiri xml-parsing

2
推荐指数
1
解决办法
4941
查看次数

标签 统计

xml ×2

nokogiri ×1

php ×1

ruby ×1

ruby-on-rails ×1

xml-parsing ×1