避免使用Nokogiri :: XML :: XPath :: SyntaxError:错误:未定义的名称空间前缀

问题描述 投票:0回答:1

我这样做时收到错误“Nokogiri :: XML :: XPath :: SyntaxError:ERROR:Undefined namespace prefix”:

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

基于这个答案:How do I use xpath on nodes with a prefix but without a namespace?

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

可以解决问题。但是我如何做类似这样的事情以避免命名空间错误:

doc.search('//text()[not(ancestor::*[name()="w:delText"]')
ruby xml nokogiri parsexml
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.