RDF parsing with php ( simplexml ? )
The group you are posting to is a
Usenet group . Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Newsgroups: comp.lang.php
From:
matte... @mattelau.net
Date: Mon, 15 Oct 2007 01:23:14 -0700
Local: Mon, Oct 15 2007 4:23 am
Subject: RDF parsing with php ( simplexml ? )
Hi all, Here is an XML file I'd like to parse with php. It's a mozilla install.rdf file.
<?xml version="1.0"?> <RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf# " xmlns:NC="http://home.netscape.com/NC-rdf# " xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns# "> <RDF:Description RDF:about="urn:mozilla:install-manifest" em:id="id1" em:name="name1" em:version="v1" em:creator="creator1" em:description="desc1" em:homepageURL="home1" em:updateURL="update1" em:iconURL="icon1"> <em:targetApplication RDF:resource="rdf:#$b0tbb"/> </RDF:Description> <RDF:Description RDF:about="rdf:#$b0tbb" em:id="id2" em:minVersion="2.0" em:maxVersion="2.0.0.*" /> </RDF:RDF>
How would you do that ? ( I'd like for example, to get the version associated with id1 )
Thanks in advance !
You must
Sign in before you can post messages.
You do not have the permission required to post.
Newsgroups: comp.lang.php
From:
NC <n... @iname.com>
Date: Mon, 15 Oct 2007 10:50:17 -0700
Local: Mon, Oct 15 2007 1:50 pm
Subject: Re: RDF parsing with php ( simplexml ? )
On Oct 15, 1:23 am, matte... @mattelau.net wrote:
> Here is an XML file I'd like to parse with php. > It's a mozilla install.rdf file.
> <?xml version="1.0"?> > <RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf# " > xmlns:NC="http://home.netscape.com/NC-rdf# " > xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns# "> > <RDF:Description RDF:about="urn:mozilla:install-manifest" > em:id="id1" > em:name="name1" > em:version="v1" > em:creator="creator1" > em:description="desc1" > em:homepageURL="home1" > em:updateURL="update1" > em:iconURL="icon1"> > <em:targetApplication RDF:resource="rdf:#$b0tbb"/> > </RDF:Description> > <RDF:Description RDF:about="rdf:#$b0tbb" > em:id="id2" > em:minVersion="2.0" > em:maxVersion="2.0.0.*" /> > </RDF:RDF>
> How would you do that ? > ( I'd like for example, to get the version associated with id1 )
You wouldn't. Not with SimpleXML anyway. SimpleXML takes an XML file or string and converts it into an object. In RDF, however, XML entities' names contain colons, which are illegal in PHP variable names. You could try and replace colons with underscores, so you would get something like this: $RDF = file_get_contents('install.rdf'); $RDF = str_replace('RDF:', 'RDF_', $RDF); $RDF = str_replace('em:', 'em_', $RDF); $XML = simplexml_load_string($RDF); foreach ($XML->RDF_Description as $num => $description) { $attributes = $description->attributes(); if (isset($attributes['em_id'])) { echo "ID = {$attributes['em_id']}; version = {$attributes['em_version']}"; }
}
Best regards, NC
You must
Sign in before you can post messages.
You do not have the permission required to post.