У меня есть следующий XML-документ:Как выбрать только узлы, которые являются не только пробелами, использующими Nokogiri?
<w:p w14:paraId="572705D7" w14:textId="77777777" w:rsidP="00CA0169" w:rsidR="00CA0169" w:rsidRDefault="00CA0169" w:rsidRPr="00777A35">
<w:r>
<w:t xml:space="preserve"/>
</w:r>
<w:r>
<w:t>synthesized in cyanobacteria under unsuitable condition</w:t>
</w:r>
</w:p>
Я в настоящее время выбрать все узлы, которые начинаются с следующим образом:
text_nodes = p.xpath('w:r')
Однако, я хотел бы, чтобы выбрать только те текстовые узлы, содержащие текст и являются не только пробелы, как первый узел, как показано в примере xml выше.
я продлил Струнный класс, чтобы проверить для пространств следующим образом:
class String
def spaces?
x = self =~ /^\s+$/
x == 0
end
end
Так что я могу сделать:
element.text.spaces?
Я просто не знаю, как поставить его вместе с p.xpath('w:r')
для выбора только узлов, которые являются НЕ только пробелами.
Спасибо zc485. Будет ли это работать для любого количества пробелов или всего лишь одного пространства? – chell
'normalize-space' удаляет все начальные и конечные пробелы, равные пустой строке, если другие символы не присутствуют. – zx485