zeddex zeddex - 24 days ago 7
PHP Question

PHP Get and modify the strings certain RSS tags

I have a RSS feed of games. What would be the best way to extract then modify and echo the text of selected tags only from each item?

So for example the text output i would like would be:

Game: Rapunzel Split Up With Flynn (HTML5)
Category: girl
Image: http://www.website.com/thumb/201611/Rapunzel-Split-Up-With-Flynn.jpg
Game: Barbie Clean Place (HTML5)
Category: girl
Image: http://www.website.com/thumb/201611/Barbie-Clean-Place.jpg


There is many more items however as i just show 2 of many.

<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Game Feed</title>
<link>http://www.website.com</link>
<description>Game Feed</description>
<language>en-us</language>
<atom:link href="http://website.com" rel="self" type="application/rss+xml" />
<item>
<id>18859</id>
<name>Rapunzel Split Up With Flynn</name>
<type>html5</type>
<description>Rapunzel wants to split up with Flynn, but what the result will be, it depends on you. Can you help her find her true love during this hard period?</description>
<control>Tap on screen on mobile phone and mouse click on PC.</control>
<tags>Princess, Movie, Love, HTML5, Hidden, Girl, Disney, Cartoon, Android</tags>
<category>girl</category>
<thumb>http://www.website.com/thumb/201611/Rapunzel-Split-Up-With-Flynn.jpg</thumb>
<filetype>iframe</filetype>
<file>http://website.com/Rapunzel-Split-Up-With-Flynn/index.php?pubid=website</file>
<width>800</width>
<height>504</height>
<size>8454545</size>
<ad>1</ad>
<copyright>1</copyright>
<resize>1</resize>
<wmode_direct>0</wmode_direct>
<mobile>1</mobile>
<m_width>800</m_width>
<m_height>504</m_height>
<site>website.com</site>
<publishDate>2016-11-15</publishDate>
</item>
<item>
<id>18858</id>
<name>Barbie Clean Place</name>
<type>html5</type>
<description>Little Barbie moved to a new home, following her dad's work transfer. As a new friend, would you like to help her and build a new home for her? Very simple, clean the messy room, and then decorate it, come and try it!</description>
<control>Tap and drag to play on mobile phone and mouse click to play on PC.</control>
<tags>Room, Princess, HTML5, Girl, Educational, Design, Decorate, Cleaning, Cartoon, Barbie, Android</tags>
<category>girl</category>
<thumb>http://www.website.com/thumb/201611/Barbie-Clean-Place.jpg</thumb>
<filetype>iframe</filetype>
<file>http://website.com/Barbie-Clean-Place/index.php?pubid=website</file>
<width>800</width>
<height>504</height>
<size>4130080</size>
<ad>1</ad>
<copyright>1</copyright>
<resize>1</resize>
<wmode_direct>0</wmode_direct>
<mobile>1</mobile>
<m_width>800</m_width>
<m_height>504</m_height>
<site>website.com</site>
<publishDate>2016-11-15</publishDate>
</item>
</channel>
</rss>


Is there any good RSS or XML processing libs i could use or some simple code?

Answer

take your xml and do json or array so you can access it easier

$xml = '<xmlstuff></xmlstuff'; // Be warned of ' xml could cause error

$json = json_encode(simplexml_load_string($xml), true);
$arrays = json_decode($json, true);

echo "<pre>";
var_dump($arrays);
echo "</pre>";

Now you can access the data like arrays!

echo $name1 = $arrays['channel']['item'][0]['name']."<br>";
echo $name2 = $arrays['channel']['item'][1]['name']."<br><br>";

//MORE ADVANCED

foreach ($arrays['channel']['item'] as $items){
    echo $items['name']."<br>";
}

i created a page here for you so you can see how it converts and is used!

http://fullertoncomputerepairwebdesign.com/tools/stackexchange/xmlparse.php