Nokogiri检查XML根/文件有效性

莱纳斯

是否有一种简单的方法/方法来检查Nokogiri XML文件是否具有正确的根目录,例如xml.valid?也非常欢迎使用一种方法来检查XML文件是否包含特定内容。

我在想类似xml.valid?的东西xml.has_valid_root?谢谢!

锡人

您将如何确定什么是适当的根?

<foo></foo>

有适当的根:

require 'nokogiri'

xml = '<foo></foo>'
doc = Nokogiri::XML(xml)
doc.root # => #<Nokogiri::XML::Element:0x3fd3a9471b7c name="foo">

Nokogiri无法确定应该以其他东西为根。也许能够测试您是否知道根节点的名称应为:

doc_root_ok = (doc.root.name == 'foo')
doc_root_ok # => true

可以看到,如果解析的文件是格式良好的(不需要任何修正),通过查看errors

doc.errors # => []

如果Nokogiri只是为了解析文档而修改了文档,errors它将返回解析之前所做的更改的列表:

xml = '<foo><bar><bar></foo>'
doc = Nokogiri::XML(xml)
doc.errors # => [#<Nokogiri::XML::SyntaxError: Opening and ending tag mismatch: bar line 1 and foo>, #<Nokogiri::XML::SyntaxError: Premature end of data in tag bar line 1>, #<Nokogiri::XML::SyntaxError: Premature end of data in tag foo line 1>]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章