如何从HTML文本中删除空格

时间:2016-05-19 09:54:12

标签: ruby parsing nokogiri whitespace

如何删除代码中的空格?如果我用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

2 个答案:

答案 0 :(得分:2)

请尝试strip

示例:

address_street = page_detail.xpath('//div[@class="address-thoroughfare mobile-inline-comma ng-binding"]').text.strip

答案 1 :(得分:1)

考虑一下:

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ße\n                    10\n                    "
puts doc.search('div').text

# >> Kühlungsborner Straße
# >>                     10
# >>                     

给定的HTML不会复制您遇到的问题。提供重复问题的有效输入非常重要。继续......

不要将xpathcsssearchtext一起使用。你通常不会得到你期望的东西:

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"]