Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Ruby和Nokogiri处理XML中的名称空间_Ruby_Rspec_Xml Parsing_Nokogiri - Fatal编程技术网

如何使用Ruby和Nokogiri处理XML中的名称空间

如何使用Ruby和Nokogiri处理XML中的名称空间,ruby,rspec,xml-parsing,nokogiri,Ruby,Rspec,Xml Parsing,Nokogiri,我有这个XML文档: <item> <title>The Big Bang Theory - Temporada 1</title> <lge:titleid>season_id4</lge:titleid> <lge:thumb>https://d12h56qju7t1ah.cloudfront.net/system/artworks/4/h80/the-big-bang-theory-1.2013032611

我有这个XML文档:

<item>
  <title>The Big Bang Theory - Temporada 1</title>
  <lge:titleid>season_id4</lge:titleid>
  <lge:thumb>https://d12h56qju7t1ah.cloudfront.net/system/artworks/4/h80/the-big-bang-theory-1.20130326114106.jpg?1364298066</lge:thumb>
</item>
类返回Nokogiri::XML::Document

但当我这样做的时候:

parsed.at_xpath('lge:titleid').text 
我得到:

Nokogiri::XML::XPath::SyntaxError: Undefined namespace prefix: //lge:titleid

这可能是什么原因,以及如何获取该特定节点的文本?

您应该定义名称空间,类似于parsed.at_xpath'lge:titleid','lge'=>'http://lge.com/'. 文档中的某个地方应该带有名称空间标记,例如“`”。阅读更多:是的。。你说得很对。但在本例中,我从其他类似的源获取XML提要,而不在根元素中定义名称空间。因此,这是一个例外情况。所以在这个场景中,我怎样才能得到它..好吧,试试parsed.remove_名称空间!要删除所有名称空间并进行如下搜索:parsed.at_xpath'titleid'.text。因此,在解析的代码中。at_xpath'lge:eposion'。文本工作正常。。但当我为它编写规范时,解析后它返回为Nokogiri::XML::Document类,因此被解析。at_xpath'lge:eption'不起作用。那么有没有办法将Nokogiri::XML:元素转换为Nokogiri::XML::Document,反之亦然。。我认为,如果这是可能的话,那么它会起作用
Nokogiri::XML::XPath::SyntaxError: Undefined namespace prefix: //lge:titleid