HTML格式化文档在哪里,如何将HTML文档格式化为特定输出?

您的HTML是无效的示例。使用有效的最小样本数据非常重要。

我不在我的电脑附近,但这看起来是正确的:

require 'nokogiri'

# encoding: utf8

html = '

Austria

Wolfhard

Bulgaria

Nestor

Croatia

Sabina
Florencije

Czech Republic

Šarlota
Zoe

'

doc = Nokogiri::HTML(html)

设置解析的DOM。因为有UTF-8字符,所以如果你使用Ruby< v2.0,这就是编码行的原因:

# encoding: utf8

以下是搜索DOM的方法:

countries = doc.search('.country')

data = countries.map { |country|

name = country.at('b').text

cities = country.search('div').map(&:text)

{

:name => name,

:cities => cities

}

}

返回一个哈希数组,其中每个哈希包含国家名称和城市名称的子数组。从那里,您可以轻松地遍历数组并根据需要输出值。

这一切都非常简单,你只需要考虑增量步骤:

由于div标记有多个class="country",因此可以使用search或css方法对其进行迭代。 css需要CSS选择器,而search允许CSS或XPath。我通常使用search因为有时候我会使用CSS,有时候会使用XPath,并且在我开发代码时可能会在它们之间跳转,因为一个人可能会更好地流动。除了选择器之外,还必须更改方法名称是一种痛苦。

对于每个选定的div,可以使用轻松获取嵌入的at标记,该标记抓取第一个找到的匹配元素,然后search获取匹配的嵌入div城市。

醇>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值