Как избежать Nokogiri :: XML :: XPath :: SyntaxError: ОШИБКА: неопределенный префикс пространства имен - PullRequest
0 голосов
/ 03 марта 2019

Я получаю ошибку «Nokogiri :: XML :: XPath :: SyntaxError: ОШИБКА: неопределенный префикс пространства имен», когда я делаю это:

 doc.search('//text()[not(ancestor::w:delText]')

На основании этого ответа: Как мнеиспользовать xpath на узлах с префиксом, но без пространства имен?

*[name()="w:delText"] 

может решить проблему.Но как мне сделать что-то подобное, чтобы избежать ошибки в пространстве имен:

doc.search('//text()[not(ancestor::*[name()="w:delText"]')

1 Ответ

0 голосов
/ 03 марта 2019

Я решил проблему, отредактировав файл XML и добавив пространства имен в корень.Вот пример:

  temp = Nokogiri::XML(@document_xml)
  temp.root['xmlns:w'] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"      
  @doc = Nokogiri::XML(temp.to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XML))
...