Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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 on rails 在Rails中使用Nokogiri解析XML以比较数据库表_Ruby On Rails_Ruby_Xml_Nokogiri - Fatal编程技术网

Ruby on rails 在Rails中使用Nokogiri解析XML以比较数据库表

Ruby on rails 在Rails中使用Nokogiri解析XML以比较数据库表,ruby-on-rails,ruby,xml,nokogiri,Ruby On Rails,Ruby,Xml,Nokogiri,我有一个名为“users”的表,它有三列: id, ref, name 我想使用Nokogiri解析以下XML文档,并通过比较“users”表记录中的值列出匹配和不匹配的记录: <?xml version="1.0" encoding="UTF-8"?> <EXPORT> <DETAIL> <ID>150</ID> <REF>188440</REF> <USER>Bruc

我有一个名为“users”的表,它有三列:

id, ref, name
我想使用Nokogiri解析以下XML文档,并通过比较“users”表记录中的值列出匹配和不匹配的记录:

<?xml version="1.0" encoding="UTF-8"?>
<EXPORT>
  <DETAIL>
    <ID>150</ID>
    <REF>188440</REF>
    <USER>Bruce</USER>
  </DETAIL>
    <DETAIL>
    <ID>1501003</ID>
    <REF>1884402</REF>
    <USER>Alice</USER>
  </DETAIL>
</EXPORT>
通过比较
id
ref
找到
名称

注意:如果
id
不匹配,则与
ref
进行比较。如果
id
匹配,则忽略
ref

我试过:

doc = Nokogiri::XML(File.open(self.filename))
exp = "//EXPORT/DETAIL"

NODES = doc.xpath(exp)

nodes.each do |node|
  unless node.text.nil?
    User.where(id: node.text).first.name
end

我想知道为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案

数据库XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。见“”

  • 如果数据已经存在于数据库中,请对其进行搜索并选择所需的记录
  • 如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后将它们插入到主表中

我想知道为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案

数据库XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。见“”

  • 如果数据已经存在于数据库中,请对其进行搜索并选择所需的记录
  • 如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后将它们插入到主表中

我想知道为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案

数据库XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。见“”

  • 如果数据已经存在于数据库中,请对其进行搜索并选择所需的记录
  • 如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后将它们插入到主表中

我想知道为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案

数据库XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。见“”

  • 如果数据已经存在于数据库中,请对其进行搜索并选择所需的记录
  • 如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后将它们插入到主表中

请解释为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案。如果数据在数据库中,则对其进行搜索。如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后插入到主表中。DB XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。请解释为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案。如果数据在数据库中,则对其进行搜索。如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后插入到主表中。DB XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。请解释为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案。如果数据在数据库中,则对其进行搜索。如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后插入到主表中。DB XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。请解释为什么要使用Nokogiri从XML中的数据库转储进行查找。这似乎非常尴尬,而且是一个非常缓慢和脆弱的解决方案。如果数据在数据库中,则对其进行搜索。如果不是,并且您希望找到要加载的记录,则将数据加载到单独的表中,并从中选择所需的记录,然后插入到主表中。DB XML转储很容易超过可用RAM,使您的计划不可行。使用SAX解析器可能会有所帮助,但解决方案仍然存在问题。非常感谢,非常感谢,非常感谢,非常感谢,非常感谢,非常感谢,非常感谢,非常感谢
doc = Nokogiri::XML(File.open(self.filename))
exp = "//EXPORT/DETAIL"

NODES = doc.xpath(exp)

nodes.each do |node|
  unless node.text.nil?
    User.where(id: node.text).first.name
end