如何删除代码中的空格?如果我用Nokogiri解析这个HTML:
<div class="address-thoroughfare mobile-inline-comma ng-binding">Kühlungsborner Straße
10
</div>
我得到以下输出:
Kühlungsborner Straße
10
这不是左对齐的。
我的代码是:
address_street = page_detail.xpath('//div[@class="address-thoroughfare mobile-inline-comma ng-binding"]').text
请尝试strip
:
address_street = page_detail.xpath('//div[@class="address-thoroughfare mobile-inline-comma ng-binding"]').text.strip
考虑一下:
require 'nokogiri'
doc = Nokogiri::HTML('<div class="address-thoroughfare mobile-inline-comma ng-binding">Kühlungsborner Straße
10
</div>')
doc.search('div').text
# => "Kühlungsborner Straßen 10n "
puts doc.search('div').text
# >> Kühlungsborner Straße
# >> 10
# >>
给定的HTML不会复制您遇到的问题。提供重复问题的有效输入非常重要。继续…
不要将xpath
、css
或search
与text
一起使用。你通常不会得到你所期望的:
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html>
<body>
<div>
<span>foo</span>
<span>bar</span>
</div>
</body>
</html>
EOT
doc.search('span').class # => Nokogiri::XML::NodeSet
doc.search('span') # => [#<Nokogiri::XML::Element:0x3fdb6981bcd8 name="span" children=[#<Nokogiri::XML::Text:0x3fdb6981b5d0 "foo">]>, #<Nokogiri::XML::Element:0x3fdb6981aab8 name="span" children=[#<Nokogiri::XML::Text:0x3fdb6981a054 "bar">]>]
doc.search('span').text
# => "foobar"
请注意,text
返回了找到的所有节点的连接文本。
相反,遍历NodeSet并获取单个节点的文本:
doc.search('span').map(&:text)
# => ["foo", "bar"]