Hi!
I'm new in this forum, so i'm be very gratefull, you won't be angry if I
ask some stupid question. My today work is: "Parsing XML in Ruby", XML
is in attachment. I've never done it, so please help me:)
thanks
Adam
Attachments:
http://www.ruby-forum.com/attachment/3887/sample.xml
···
--
Posted via http://www.ruby-forum.com/.
Milan Dobrota wrote:
Check out hpricot: http://wiki.github.com/why/hpricot
Regards,
Milan
thank you very much Milan, I found this web, but I'm still be very
gratefull if someone write even small part of this.
···
--
Posted via http://www.ruby-forum.com/\.
Here are the hpricot examples:
http://wiki.github.com/why/hpricot/hpricot-xml
Regards,
Milan Dobrota
···
--
Posted via http://www.ruby-forum.com/.
Bertram Scharpf wrote:
Hi,
I'm new in this forum, so i'm be very gratefull, you won't be angry if I
ask some stupid question. My today work is: "Parsing XML in Ruby", XML
is in attachment. I've never done it, so please help me:)
REXML belongs to the Ruby standard library.
REXML: Processing XML in Ruby
Bertram
ok thanks very much, I decided to use REXML, but i have problem with
this examples. My XML file is more complicated so I want require to
simplifi code. I'm still using this example (movies.xml) becouse it's
less complicated. I don't want refer to every position (like title, year
etc) but to all. My proposition:
#!/usr/bin/ruby -w
require 'rexml/document'
include REXML
xmlfile = File.new("movies.xml")
xmldoc = Document.new(xmlfile)
# Now get the root element
root = xmldoc.root
puts "Root element : " + root.attributes["shelf"]
# This will output all the movie titles.
xmldoc.elements.each("collection"){
>e> puts e.attributes["title"]
}
doesn't work.
I'll be very gratefull when someone explain where is mistake...
regards
adam
···
Am Dienstag, 21. Jul 2009, 23:39:14 +0900 schrieb Adam Giewond:
--
Posted via http://www.ruby-forum.com/\.
Here are two small examples based on your original XML:
irb(main):001:0> require 'rexml/document'
=> true
irb(main):002:0> file = File.new('sample.xml')
=> #<File:sample.xml>
irb(main):003:0> doc = REXML::Document.new(file)
=> <UNDEFINED> ... </>
irb(main):004:0> root = doc.root
=> <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> ... </>
irb(main):005:0> root.each_element('//ns2:sourcingChannel') do |sC|
irb(main):006:1* puts sC.elements['name'].text
irb(main):007:1> end
United Utilities
testttttttttttt
Broadbean AdCourier - NEW
Monster
Pracuj.pl
momozozo
Vanilla
. . .
irb(main):008:0> body = root.elements['env:Body']
=> <env:Body> ... </>
irb(main):009:0> acr = body.elements['ns2:getActiveChannelsResponse']
=> <ns2:getActiveChannelsResponse xmlns:ns2='http://ws.mrted.com/'> ... </>
irb(main):010:0> acr.elements.each do |sC|
irb(main):011:1* puts sC.elements['name'].text
irb(main):012:1> end
United Utilities
N Power
mzych.com
HPA
gttt
Vanilla
FCO
Lloyds TSB Tel Banking OTU
. . .
irb(main):013:0> root.each_element('//ns2:sourcingChannel/name') do |name|
irb(main):014:1* puts name.text
irb(main):015:1> end
testttttttttttt
Broadbean AdCourier - NEW
Monster
Pracuj.pl
momozozo
Broadbean AdCourierx
Vanilla
. . .
I usually use something like the first way: each_element with an XPath
to pull out the "record" nodes for processing.
···
On Wed, Jul 22, 2009 at 4:43 AM, Adam Lorens<adamlor@o2.pl> wrote:
Bertram Scharpf wrote:
Hi,
Am Dienstag, 21. Jul 2009, 23:39:14 +0900 schrieb Adam Giewond:
I'm new in this forum, so i'm be very gratefull, you won't be angry if I
ask some stupid question. My today work is: "Parsing XML in Ruby", XML
is in attachment. I've never done it, so please help me:)
REXML belongs to the Ruby standard library.
REXML: Processing XML in Ruby
Bertram
ok thanks very much, I decided to use REXML, but i have problem with
this examples.
Bertram Scharpf wrote:
Hi,
xmlfile = File.new("movies.xml")
xmldoc = Document.new(xmlfile)
# This will output all the movie titles.
xmldoc.elements.each("collection"){
>e> puts e.attributes["title"]
}
Did you try "xmldoc.root.elements.each( ..."?
^^^^^
Bertram
Hi,
I try Your proposition, but it also doesn't work, because SciTe only
says:
"Root element: New arrivals"( I want more information which is on
XML).My new XML is in attachment.
regards
Adam
Attachments:
http://www.ruby-forum.com/attachment/3893/movies.rb
···
Am Mittwoch, 22. Jul 2009, 17:43:09 +0900 schrieb Adam Lorens:
--
Posted via http://www.ruby-forum.com/\.
hi,
thank you very much, first way is correct, and I'll use it. but I have
another question. I'm looking for assert, does this element have
descendant, and if exist, does exist assert scheme. So I get xml
element, first I check does he has children, and what this children look
like.
regards
Adam
···
--
Posted via http://www.ruby-forum.com/.
I forgot add, It is right way?
···
--
Posted via http://www.ruby-forum.com/.