Nokogiri XML and loop not working

I made a script to get data from the API. I get a response, but it first returns the name of each company and then each job title in one block.

What I am getting now:

ecutive KingswoodSales ExecutiveTrainee Van Sales ProfessionalJunior Broker (Opener) - Hong Kong - flights & accomodationTrainee Sales ExecutiveSales AssociateSales Executive
Mercedes-BenzMercedes-BenzMercedes-BenzSwinton GroupPorscheMercedes-BenzElite Sales RecruitmentImperial TobaccoThreeMercedes-Benz

      

I tried to add every do loop, but now it is empty and I am not getting an error.

My script:

require 'nokogiri'
require 'open-uri'

xmls = Nokogiri::XML(open('http://api.indeed.com/ads/apisearch?publisher=apikey&q=sales&l=&sort=&radius=40&st=&jt=&start=&limit=&fromage=&filter=&co=uk&v=2')) 

xmls.each do |xml|    
  jobtitle = xml.search('jobtitle').text
  company  = xml.search('company').text

  puts jobtitle
  puts company 
end

      

My goal is for my data to be like this:

Company 1
company name
company jobtitle

Company 2
company name
company jobtitle

Company 3
company name
company jobtitle 
...

      

This is the XML response:

<?xml version="1.0" encoding="UTF-8" ?>
<response version="2">
    <query>java</query>
    <location>austin, tx</location>
    <dupefilter>true</dupefilter>
    <highlight>false</highlight>
    <totalresults>547</totalresults>
    <start>1</start>
    <end>10</end>
    <radius>25</radius>
    <pageNumber>0</pageNumber>
    <results>
        <result>
            <jobtitle>Java Developer</jobtitle>
            <company>XYZ Corp.</company>
            <city>Austin</city>
            <state>TX</state>
            <country>US</country>
            <formattedLocation>Austin, TX</formattedLocation>
            <source>Dice</source>
            <date>Mon, 02 Aug 2010 16:21:00 GMT</date>
            <snippet>looking for an object-oriented Java Developer... Java Servlets, HTML, JavaScript,
            AJAX, Struts, Struts2, JSF) desirable. Familiarity with Tomcat and the Java...</snippet>
            <url>http://www.indeed.com/viewjob?jk=12345&indpubnum=8343699265155203</url>
            <onmousedown>indeed_clk(this,'0000');</onmousedown>
            <latitude>30.27127</latitude>
            <longitude>-97.74103</longitude>
            <jobkey>12345</jobkey>
            <sponsored>false</sponsored>
            <expired>false</expired>
            <formattedLocationFull>Austin, TX</formattedLocationFull>
            <formattedRelativeTime>11 hours ago</formattedRelativeTime>
        </result>
        ...
    </results>
</response>

      

+3


source to share


1 answer


you can use css selector for this.



xmls = Nokogiri::XML(open('......')) 

xmls.css('results result').each do |xml|
  jobtitle = xml.css('jobtitle').text
  company = xml.css('company').text
  puts jobtitle
  puts company 
end

      

+2


source







All Articles