XML Feed get print values
Here is my feed:
<entry>
<id>http://api.visitmix.com/OData.svc/Sessions(guid'816995df-b09a-447a-9391-019512f643a0')</id>
<title type="text">Building Web Applications with Microsoft SQL Azure</title>
<summary type="text">SQL Azure provides a highly available and scalable relational database engine in the cloud. In this demo-intensive and interactive session, learn how to quickly build web applications with SQL Azure Databases and familiar web technologies. We demonstrate how you can quickly provision, build and populate a new SQL Azure database directly from your web browser. Also, see firsthand several new enhancements we are adding to SQL Azure based on the feedback we’ve received from the community since launching the service earlier this year.</summary>
<published>2010-01-25T00:00:00-05:00</published>
<updated>2010-03-05T01:07:05-05:00</updated>
<author>
<name />
</author>
<link rel="edit" title="Session" href="Sessions(guid'816995df-b09a-447a-9391-019512f643a0')" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Speakers" type="application/atom+xml;type=feed" title="Speakers" href="Sessions(guid'816995df-b09a-447a-9391-019512f643a0')/Speakers">
<m:inline>
<feed>
<title type="text">Speakers</title>
<id>http://api.visitmix.com/OData.svc/Sessions(guid'816995df-b09a-447a-9391-019512f643a0')/Speakers</id>
<updated>2010-03-25T11:56:06Z</updated>
<link rel="self" title="Speakers" href="Sessions(guid'816995df-b09a-447a-9391-019512f643a0')/Speakers" />
<entry>
<id>http://api.visitmix.com/OData.svc/Speakers(guid'3395ee85-d994-423c-a726-76b60a896d2a')</id>
<title type="text">David-Robinson</title>
<summary type="text"></summary>
<updated>2010-03-25T11:56:06Z</updated>
<author>
<name>David Robinson</name>
</author>
<link rel="edit-media" title="Speaker" href="Speakers(guid'3395ee85-d994-423c-a726-76b60a896d2a')/$value" />
<link rel="edit" title="Speaker" href="Speakers(guid'3395ee85-d994-423c-a726-76b60a896d2a')" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Sessions" type="application/atom+xml;type=feed" title="Sessions" href="Speakers(guid'3395ee85-d994-423c-a726-76b60a896d2a')/Sessions" />
<category term="Ev开发者_JS百科entModel.Speaker" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="image/jpeg" src="http://live.visitmix.com/Content/images/speakers/lrg/default.jpg" />
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<d:SpeakerID m:type="Edm.Guid">3395ee85-d994-423c-a726-76b60a896d2a</d:SpeakerID>
<d:SpeakerFirstName>David</d:SpeakerFirstName>
<d:SpeakerLastName>Robinson</d:SpeakerLastName>
<d:LargeImage m:null="true"></d:LargeImage>
<d:SmallImage m:null="true"></d:SmallImage>
<d:Twitter m:null="true"></d:Twitter>
</m:properties>
</entry>
</feed>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Tags" type="application/atom+xml;type=feed" title="Tags" href="Sessions(guid'816995df-b09a-447a-9391-019512f643a0')/Tags" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Files" type="application/atom+xml;type=feed" title="Files" href="Sessions(guid'816995df-b09a-447a-9391-019512f643a0')/Files" />
<category term="EventModel.Session" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:SessionID m:type="Edm.Guid">816995df-b09a-447a-9391-019512f643a0</d:SessionID>
<d:Location>Breakers L</d:Location>
<d:Type>Seminar</d:Type>
<d:Code>SVC07</d:Code>
<d:StartTime m:type="Edm.DateTime">2010-03-17T12:00:00</d:StartTime>
<d:EndTime m:type="Edm.DateTime">2010-03-17T13:00:00</d:EndTime>
<d:Slug>SVC07</d:Slug>
<d:CreatedDate m:type="Edm.DateTime">2010-01-26T18:14:24.687</d:CreatedDate>
<d:SourceID m:type="Edm.Guid">cddca9b7-6830-4d06-af93-5fd87afb67b0</d:SourceID>
</m:properties>
</content>
</entry>
I want to print the:
- Session Title (Building Web Applications with Microsoft SQL Azure)
- The Author (David Robinson)
- The Location (Breakers L)
- And display the speakers image (http://live.visitmix.com/Content/images/speakers/lrg/default.jpg)
I presume I can use filegetcontents
and then transform to simplexmlstring
, but I dont know how to get the deeper items in I want, like Author, and image.
Considering SimpleXML loads XML data using :
- array keys for attributes
- objects for values
Something like this should do the trick :
$string = <<<STR
<entry>
...
</entry>
STR;
$xml = @simplexml_load_string($string);
echo (string)$xml->title . '<br />';
echo (string)$xml->link[1]->inline->feed->entry->author->name . '<br />';
echo (string)$xml->content->properties->Location . '<br />';
echo (string)$xml->link[1]->inline->feed->entry->content['src'] . '<br />';
And I get the following output :
Building Web Applications with Microsoft SQL Azure
David Robinson
Breakers L
http://live.visitmix.com/Content/images/speakers/lrg/default.jpg
Using var_dump($xml);
can help you find out how your data is represented, when using SimpleXML -- makes things easier when it comes to accessing it ;-)
Note : here, I've used the @
operator to supress the warnings I was getting when using simplexml_load_string
; else, I have plenty of warnings like these :
Warning: simplexml_load_string() [function.simplexml-load-string]:
namespace error : Namespace prefix m on inline is not defined
Warning: simplexml_load_string() [function.simplexml-load-string]: <m:inline>
Maybe there's something that needs fixing, here ?
精彩评论