我想从XML中提取标签div内部文本的一部分,考虑到托架返回。在Ruby中使用以下代码。
doc = Nokogiri::HTML(xmlpost.content)
contenido = doc.css('div').css('span')
parrafo = Array.new()
contenido.each do |par|
parrafo.push(par.text)
end
parrafo_json = parrafo.to_json
return parrafo_json
问题是,在数组中,我存储了所有文本而无需返回马车,我想将不同的数组位置放置在不同的阵列位置,每个部分都以托架返回分隔。
例如,假设我有这个xml:
<div><span><br>example1</br><br>example2</br></span></div>
<div><span>example3</span></div>
当我在此代码上运行此数字时,我将构建此数组:
[" example1example2"," example3"]
我想考虑到这一点的BR:
[" example1"," example2"," example3"]
我希望我能得到您期望正确实现的目标。首先,摆脱Ruby内部的PHP:
parrafo = Array.new()
contenido.each do |par|
parrafo.push(par.text)
end
这就是在Ruby中重写的方式:
parrafo = contenido.map(&:text)
在这里我们map
contenido
中的每个项目至par.text
。现在您有了一系列文本。您可以加入马车回报:
parrafo_with_cr = parrafo.join($/)
#⇒ "First linensecond linen..."
上面将使用平台 - 不合稳定分离器$/
连接线路。专门加入n
:
parrafo_with_cr = parrafo.join("n")
希望它有帮助。
upd 对于更新的问题(<br>
标签中断):
contenido = doc.css('div').css('span').map do |i|
i.inner_html.split(/<br>/)
end.flatten - ['']
#⇒ [
# [0] "example1",
# [1] "example2",
# [2] "example3"
#]
后者- ['']
这里删除了<br>
在<span>
S。
sidenote:您的HTML无效,<br>
标签没有关闭的兄弟姐妹。