Nokogiri - 获取属性?
Nokogiri - Get attributes?
正在尝试使用 nokogiri 获取属性值:
require 'nokogiri'
doc = Nokogiri::XML("<root attr=1></root>")
doc.root.attributes
#=> {}
为什么这不起作用...?
XML 属性值始终需要用引号引起来。
因为你在外面用了双引号,所以里面要用单引号:
require 'nokogiri'
doc = Nokogiri::XML("<root attr='1'></root>")
doc.root.attributes
或者你可以反其道而行之,双引号在里面,单引号在外面。
doc = Nokogiri::XML('<root attr="1"></root>')
思考一下:
require 'nokogiri'
doc = Nokogiri::XML("<root attr=1></root>")
doc.errors # => [#<Nokogiri::XML::SyntaxError: 1:12: FATAL: AttValue: " or ' expected>, #<Nokogiri::XML::SyntaxError: 1:12: FATAL: attributes construct error>, #<Nokogiri::XML::SyntaxError: 1:12: FATAL: Couldn't find end of Start Tag root line 1>, #<Nokogiri::XML::SyntaxError: 1:12: FATAL: Extra content at the end of the document>]
doc.errors
是你的朋友。
正在尝试使用 nokogiri 获取属性值:
require 'nokogiri'
doc = Nokogiri::XML("<root attr=1></root>")
doc.root.attributes
#=> {}
为什么这不起作用...?
XML 属性值始终需要用引号引起来。
因为你在外面用了双引号,所以里面要用单引号:
require 'nokogiri'
doc = Nokogiri::XML("<root attr='1'></root>")
doc.root.attributes
或者你可以反其道而行之,双引号在里面,单引号在外面。
doc = Nokogiri::XML('<root attr="1"></root>')
思考一下:
require 'nokogiri'
doc = Nokogiri::XML("<root attr=1></root>")
doc.errors # => [#<Nokogiri::XML::SyntaxError: 1:12: FATAL: AttValue: " or ' expected>, #<Nokogiri::XML::SyntaxError: 1:12: FATAL: attributes construct error>, #<Nokogiri::XML::SyntaxError: 1:12: FATAL: Couldn't find end of Start Tag root line 1>, #<Nokogiri::XML::SyntaxError: 1:12: FATAL: Extra content at the end of the document>]
doc.errors
是你的朋友。