我的Ruby脚本应该从URL读取XML文档并检查它是否格式良好,并返回任何错误.我有一个使用以下文本托管的示例坏XML文档(来自Nokogiri教程:
<?xml version="1.0"?>
<root>
<open>foo
<closed>bar</closed>
</root>
Run Code Online (Sandbox Code Playgroud)
我的测试脚本如下(url引用我个人服务器上托管的上述xml文件):
require 'nokogiri'
document = Nokogiri::XML(url)
puts document
puts document.errors
Run Code Online (Sandbox Code Playgroud)
输出是:
<?xml version="1.0"?>
Start tag expected, '<' not found
Run Code Online (Sandbox Code Playgroud)
为什么它只捕获XML文件的第一行?即使使用已知良好的XML文件,它也能做到这一点.
它试图解析网址,而不是其内容.请考虑到第一个参数Nokogiri::XML必须是包含文档或字符串IO对象,因为它只是一个快捷方式Nokogiri::XML::Document.parse作为说明这里.
编辑:从uri阅读
require 'open-uri'
open(uri).read
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2596 次 |
| 最近记录: |