Ruby Nokogiri:用<;换行顶级文本元素;p>;标签

Ruby Nokogiri:用<;换行顶级文本元素;p>;标签,ruby,xpath,nokogiri,Ruby,Xpath,Nokogiri,无法为其他标记尚未包含的“裸”文本节点构建XPath选择器。我想改变这一点: some naked text <p>some wrapped text</p> more naked text 一些裸体文本一些包装文本更多裸体文本 为此: <p>some naked text</p> <p>some wrapped text</p> <p>more naked text</p> 一些裸体文本一些包

无法为其他标记尚未包含的“裸”文本节点构建XPath选择器。我想改变这一点:

some naked text <p>some wrapped text</p> more naked text
一些裸体文本一些包装文本

更多裸体文本
为此:

<p>some naked text</p> <p>some wrapped text</p> <p>more naked text</p>
一些裸体文本

一些包装文本

更多裸体文本


我尝试使用
doc.xpath(“//child::text()”).wrap(“

”)
,但这似乎抓住了所有文本节点,而不仅仅是顶层节点。

除了段落内的文本,您可以找到所有文本

'//text()[not(ancestor::p)]'

将选择作为根XML元素的子元素的所有文本元素(无论其名称如何)。

Yes
/
将选择:“从当前节点中选择与所选内容匹配的节点,无论它们位于何处。”Try
“/*/text()
用于根元素中的文本。这将包装
foo
,例如,
主体是我缺少的部分。我的文档是从没有任何容器的html文本片段构建的,但Nokogiri意外地为我创建了这些标记。谢谢。
doc.xpath('/html/body/text()').wrap('<p/>')
doc.xpath('/*/text()').wrap('<p/>')