need help to parse xml (foaf)

P

Patrick Aljord

hey all,
I have a foaf.xml that looks like that:


<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xfn="http://gmpg.org/xfn/">
<foaf:person rdf:about="http://myself.videntity.org/">
<foaf:name>myself</foaf:name>
<foaf:page>
<foaf:Document rdf:about="http://myself.videntity.org/" />
</foaf:page>
<foaf:nick>myself</foaf:nick>
<foaf:mbox rdf:resource="mailto:[email protected]" />
<foaf:mbox_sha1sum>67b60b91fd6d4f68e32deae93956d36bc7c93c70</foaf:mbox_sha1sum>
<foaf:knows>
<foaf:person rdf:about="http://bob.videntity.org/">
<foaf:name>bob</foaf:name>
<foaf:homepage rdf:resource="http://bob.videntity.org/" />
</foaf:person>
</foaf:knows>
<foaf:knows>
<foaf:person rdf:about="http://bill.videntity.org/">
<foaf:name>bill</foaf:name>
<foaf:homepage rdf:resource="http://bill.videntity.org/" />
</foaf:person>
</foaf:knows>
</foaf:person>
</rdf:RDF>


I put all this into a string @f and then I create a doc:

doc=Document.new(@f.body)
@foaffriends=doc.root


I'm trying to get the names of all my friends:
"bill" and "bob"

If I do:

@foaffriends[1].elements['foaf:knows'][1].elements['foaf:name']


I get "bob" but I can't figure out how to get "bill".
I tried:


@foaffriends[1].elements['foaf:knows'][2].elements['foaf:name']


but it returned nil.

Any idea how to get all my friends name?

thanx in advance

Pat
 
P

Phrogz

hey all,
I have a foaf.xml that looks like that: [snip]
I'm trying to get the names of all my friends:
"bill" and "bob"

require 'rexml/document'

doc = REXML::Document.new( DATA.read )
p doc.each_element( '//foaf:knows/foaf:person/foaf:name/text()' ){}
#=> ["bob", "bill"]

__END__
<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xfn="http://gmpg.org/xfn/">
<foaf:person rdf:about="http://myself.videntity.org/">
<foaf:name>myself</foaf:name>
</foaf:page>
<foaf:nick>myself</foaf:nick>
<foaf:mbox rdf:resource="mailto:[email protected]" />
<foaf:mbox_sha1sum>67b60b91fd6d4f68e32deae93956d36bc7c93c70</
foaf:mbox_sha1sum>
<foaf:knows>
<foaf:person rdf:about="http://bob.videntity.org/">
<foaf:name>bob</foaf:name>
<foaf:homepage rdf:resource="http://
bob.videntity.org/" />
</foaf:person>
</foaf:knows>
<foaf:knows>
<foaf:person rdf:about="http://bill.videntity.org/">
<foaf:name>bill</foaf:name>
<foaf:homepage rdf:resource="http://
bill.videntity.org/" />
</foaf:person>
</foaf:knows>
</foaf:person>
</rdf:RDF>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,990
Messages
2,570,211
Members
46,796
Latest member
SteveBreed

Latest Threads

Top