Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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 Nokogiri Sax解析器返回数组_Ruby On Rails_Ruby_Parsing_Nokogiri_Sax - Fatal编程技术网

Ruby on rails Nokogiri Sax解析器返回数组

Ruby on rails Nokogiri Sax解析器返回数组,ruby-on-rails,ruby,parsing,nokogiri,sax,Ruby On Rails,Ruby,Parsing,Nokogiri,Sax,我正在使用Nokogiri和Sax解析xml文件: @active_ids = Nokogiri::XML::SAX::Parser.new(IdParser.new).parse(open("https://s3.eu-central-1.amazonaws.com/redacted/client_xml.xml")) 在解析器内部,我正在构建一个ID数组,并希望在解析器完成后返回它们: def initialize @array_of_ids = [] end def start_el

我正在使用Nokogiri和Sax解析xml文件:

@active_ids = Nokogiri::XML::SAX::Parser.new(IdParser.new).parse(open("https://s3.eu-central-1.amazonaws.com/redacted/client_xml.xml"))
在解析器内部,我正在构建一个ID数组,并希望在解析器完成后返回它们:

def initialize
  @array_of_ids = []
end
def start_element(name, attrs = [])
  @array_of_ids << attrs[0][1].to_s if name == "job"
end      
def end_document
  return @array_of_ids
end
def初始化
@数组\u的\u id=[]
结束
def start_元素(名称,属性=[])

@数组\u of_id解决方案:需要以不同的方式构造调用。如果我想要一个ID数组,那么我可以通过document属性访问它(必须解码并编码为json才能很好地处理它,因为我不理解解析器提供的格式):


请发布您的数组转换代码。。。和xml示例…请阅读“”。我们需要最小的程序和最小的数据来证明问题本身的问题。我们还需要知道您的预期产量。
  f = open("https://s3.eu-central-1.amazonaws.com/xml.xml")
  id_parser = Nokogiri::XML::SAX::Parser.new(IdParser.new)
  id_parser.parse(f)
  @active_ids = ActiveSupport::JSON.decode(id_parser.to_json)["document"]["array_of_ids"]