Avoiding Nokogiri::XML::XPath::SyntaxError: ERROR: Undefined namespace prefix
Avoiding Nokogiri::XML::XPath::SyntaxError: ERROR: Undefined namespace prefix
我在执行此操作时收到错误 "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"]')
我最终通过编辑 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))
我在执行此操作时收到错误 "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"]')
我最终通过编辑 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))