开发者

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&#x2019;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 ?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜