Im, использующий савонный камень для получения информации об XML.Как получить/получить идентификатор из ответа xml
XML-ответ, как этот
"<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><Divisions xmlns=\"urn:description7a.services.chrome.com\"><responseStatus responseCode=\"Successful\" description=\"Successful\"/><division id=\"1\">Acura</division><division id=\"44\">Aston Martin</division><division id=\"4\">Audi</division><division id=\"45\">Bentley</division><division id=\"5\">BMW</division><division id=\"6\">Buick</division><division id=\"7\">Cadillac</division><division id=\"8\">Chevrolet</division><division id=\"9\">Chrysler</division><division id=\"11\">Dodge</division><division id=\"46\">Ferrari</division><division id=\"59\">FIAT</division><division id=\"13\">Ford</division><division id=\"15\">GMC</division><division id=\"16\">Honda</division><division id=\"17\">Hyundai</division><division id=\"18\">Infiniti</division><division id=\"19\">Isuzu</division><division id=\"20\">Jaguar</division><division id=\"21\">Jeep</division><division id=\"22\">Kia</division><division id=\"47\">Lamborghini</division><division id=\"23\">Land Rover</division><division id=\"24\">Lexus</division><division id=\"25\">Lincoln</division><division id=\"48\">Lotus</division><division id=\"53\">Maserati</division><division id=\"26\">Mazda</division><division id=\"27\">Mercedes-Benz</division><division id=\"2\">MINI</division><division id=\"29\">Mitsubishi</division><division id=\"30\">Nissan</division><division id=\"34\">Porsche</division><division id=\"57\">Ram</division><division id=\"49\">Rolls-Royce</division><division id=\"52\">Scion</division><division id=\"42\">Smart</division><division id=\"37\">Subaru</division><division id=\"38\">Suzuki</division><division id=\"56\">Tesla</division><division id=\"39\">Toyota</division><division id=\"40\">Volkswagen</division><division id=\"41\">Volvo</division></Divisions></S:Body></S:Envelope>"
я хочу разделить идентификатор и сделать имя.
, как я могу это сделать
Edited
я сохранили XML в переменной, как
xml = 1.9.3p194 :063 > xml
=> "<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><Divisions xmlns=\"urn:description7a.services.chrome.com\"><responseStatus responseCode=\"Successful\" description=\"Successful\"/><division id=\"1\">Acura</division><division id=\"44\">Aston Martin</division><division id=\"4\">Audi</division><division id=\"45\">Bentley</division><division id=\"5\">BMW</division><division id=\"6\">Buick</division><division id=\"7\">Cadillac</division><division id=\"8\">Chevrolet</division><division id=\"9\">Chrysler</division><division id=\"11\">Dodge</division><division id=\"46\">Ferrari</division><division id=\"59\">FIAT</division><division id=\"13\">Ford</division><division id=\"15\">GMC</division><division id=\"16\">Honda</division><division id=\"17\">Hyundai</division><division id=\"18\">Infiniti</division><division id=\"19\">Isuzu</division><division id=\"20\">Jaguar</division><division id=\"21\">Jeep</division><division id=\"22\">Kia</division><division id=\"47\">Lamborghini</division><division id=\"23\">Land Rover</division><division id=\"24\">Lexus</division><division id=\"25\">Lincoln</division><division id=\"48\">Lotus</division><division id=\"53\">Maserati</division><division id=\"26\">Mazda</division><division id=\"27\">Mercedes-Benz</division><division id=\"2\">MINI</division><division id=\"29\">Mitsubishi</division><division id=\"30\">Nissan</division><division id=\"34\">Porsche</division><division id=\"57\">Ram</division><division id=\"49\">Rolls-Royce</division><division id=\"52\">Scion</division><division id=\"42\">Smart</division><division id=\"37\">Subaru</division><division id=\"38\">Suzuki</division><division id=\"56\">Tesla</division><division id=\"39\">Toyota</division><division id=\"40\">Volkswagen</division><division id=\"41\">Volvo</division></Divisions></S:Body></S:Envelope>"
и я попытался
@doc = Nokogiri::XML(xml)
он дал что-то вроде
#<Nokogiri::XML::Document:0x5ea65f0 name="document" children=[#<Nokogiri::XML::Element:0x5ea6398 name="Envelope" namespace=#<Nokogiri::XML::Namespace:0x5ea6370 prefix="S" href="http://schemas.xmlsoap.org/soap/envelope/"> children=[#<Nokogiri::XML::Element:0x5ea5fc4 name="Body" namespace=#<Nokogiri::XML::Namespace:0x5ea6370 prefix="S" href="http://schemas.xmlsoap.org/soap/envelope/"> children=[#<Nokogiri::XML::Element:0x5ea5c5e name="Divisions" namespace=#<Nokogiri::XML::Namespace:0x5ea5c18 href="urn:description7a.services.chrome.com"> children=[#<Nokogiri::XML::Element:0x5ea592a name="responseStatus" namespace=#<Nokogiri::XML::Namespace:0x5ea5c18 href="urn:description7a.services.chrome.com"> attributes=[#<Nokogiri::XML::Attr:0x5ea5858 name="responseCode" value="Successful">, #<Nokogiri::XML::Attr:0x5ea581c name="description" value="Successful">]>, #<Nokogiri::XML::Element:0x5ea518c name="division" namespace=#<Nokogiri::XML::Namespace:0x5ea5c18 href="urn:description7a.services.chrome.com"> attributes=[#<Nokogiri::XML::Attr:0x5ea515a name="id" value="1">] children=[#<Nokogiri::XML::Text:0x5ea4ad4 "Acura">]>, #<Nokogiri::XML::Element:0x5ea491c name="division" namespace=#<Nokogiri::XML::Namespace:0x5ea5c18 href="urn:description7a.services.chrome.com"> attributes=[#<Nokogiri::XML::Attr:0x5ea489a name="id" value="44">] children=[#<Nokogiri::XML::Text:0x63dc434 "Aston Martin">]>, #<Nokogiri::XML::Element:0x63dc222 name="division" namespace=#<Nokogiri::XML::Namespace:0x5ea5c18 href="urn:description7a.services.chrome.com"> attributes=[#<Nokogiri::XML::Attr:0x63dc1f0 name="id" value="4">] children=[#<Nokogiri::XML::Text:0x63dbcbe "Audi">]>, #<Nokogiri::XML::Element:0x63dbb56 name="division" namespace=#<Nokogiri::XML::Namespace:0x5ea5c18 href="urn:description7a.services.chrome.com"> attributes=[#<Nokogiri::XML::Attr:0x63dbb10 name="id" value="45">] ......
Я попробовал @ doc.xpath ('// S: Envelope // S :: Body'). Each do | f | ставит е конец
я выберусь поставить как
<S:Body>
<Divisions xmlns="urn:description7a.services.chrome.com">
<responseStatus responseCode="Successful" description="Successful"/>
<division id="1">Acura</division>
<division id="44">Aston Martin</division>
<division id="4">Audi</division>
<division id="45">Bentley</division>
<division id="5">BMW</division>
.......
</Divisions>
</S:Body>
я хочу, чтобы получить информацию, как идентификатор и имя так я попытался
он вернулся [], пустой массив
@doc.xpath('//S:Envelope//S::Body//Divisions')
он вернулся пустой массив, такой как []
Возможный дубликат: http://stackoverflow.com/questions/9482047/read-response-with-nokogiri-from-a-soap-call-with-savon – vee