【问题标题】:Avoiding Nokogiri::XML::XPath::SyntaxError: ERROR: Undefined namespace prefix避免 Nokogiri::XML::XPath::SyntaxError: ERROR: Undefined namespace prefix
【发布时间】:2019-03-03 05:00:21
【问题描述】:

执行此操作时出现错误“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 示例以及您想要定位的具体内容。

标签: ruby xml nokogiri parsexml


【解决方案1】:

我最终通过编辑 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))

【讨论】:

    猜你喜欢
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2017-05-07
    相关资源
    最近更新 更多