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

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

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

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

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

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

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

0 ответов

Я решил проблему, отредактировав файл 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))
Другие вопросы по тегам