3

I am looking for a way to get the kuler:swatchHexColor values in the XML file below. I tried a few ways but no luck. I tried this below, but didn't do well.

Again, trying to put hexColor values into variables.

$feed = simplexml_load_file('url');
$kuler = $feed->children('http://kuler.adobe.com/kuler/API/rss/');
foreach ($kuler->themeItem as $themeItem)   {
  echo $themeItem->swatch;
}

<rss xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rss="http://blogs.law.harvard.edu/tech/rss" xmlns:kuler="http://kuler.adobe.com/kuler/API/rss/" version="2.0">
    <channel>
        <title>kuler search results for 'crazy'</title>
        <link>http://kuler.adobe.com/</link>
        <description>
        612 kuler themes were found. Displaying results 1 to 1.
        </description>
        <language>en-us</language>
        <pubDate />
        <lastBuildDate />
        <docs>http://blogs.law.harvard.edu/tech/rss</docs>
        <generator>Kuler Services</generator>
        <managingEditor>[email protected]</managingEditor>
        <webMaster>[email protected]</webMaster>
        <recordCount>612</recordCount>
        <startIndex>0</startIndex>
        <itemsPerPage>1</itemsPerPage>
        <item>
            <title>Theme Title: crazy lisa</title>
            <link>http://kuler.adobe.com/index.cfm#themeID/89760</link>
            <guid>http://kuler.adobe.com/index.cfm#themeID/89760</guid>
            <enclosure xmlns="http://www.solitude.dk/syndication/enclosures/">
                <title>crazy lisa</title>
                <link type="image/png" length="1">
                    <url>
        http://kuler-api.adobe.com/kuler/themeImages/theme_89760.png
        </url>
                </link>
            </enclosure>
            <description>
                <img src="http://kuler-api.adobe.com/kuler/themeImages/theme_89760.png" />
                <br /> Artist: sa<br /> ThemeID: 89760<br /> Posted: 09/24/2007<br /> Tags: crazy but sweet, crazy harmony <br />    Hex: FF0082, BF9F1B, B8495D, 520641, CC0000
        </description>
            <kuler:themeItem>
                <kuler:themeID>89760</kuler:themeID>
                <kuler:themeTitle>crazy lisa</kuler:themeTitle>
                <kuler:themeImage>...</kuler:themeImage>
                <kuler:themeAuthor>...</kuler:themeAuthor>
                <kuler:themeTags>crazy but sweet, crazy harmony</kuler:themeTags>
                <kuler:themeRating>3</kuler:themeRating>
                <kuler:themeDownloadCount>28</kuler:themeDownloadCount>
                <kuler:themeCreatedAt>20070924</kuler:themeCreatedAt>
                <kuler:themeEditedAt>20070926</kuler:themeEditedAt>
                <kuler:themeSwatches>
                    <kuler:swatch>
                        <kuler:swatchHexColor>FF0082</kuler:swatchHexColor>
                        <kuler:swatchColorMode>cmyk</kuler:swatchColorMode>
                        <kuler:swatchChannel1>0.0</kuler:swatchChannel1>
                        <kuler:swatchChannel2>1.0</kuler:swatchChannel2>
                        <kuler:swatchChannel3>0.49</kuler:swatchChannel3>
                        <kuler:swatchChannel4>0.0</kuler:swatchChannel4>
                        <kuler:swatchIndex>0</kuler:swatchIndex>
                    </kuler:swatch>
                    <kuler:swatch>
                        <kuler:swatchHexColor>BF9F1B</kuler:swatchHexColor>
                        <kuler:swatchColorMode>cmyk</kuler:swatchColorMode>
                        <kuler:swatchChannel1>0.0</kuler:swatchChannel1>
                        <kuler:swatchChannel2>0.17</kuler:swatchChannel2>
                        <kuler:swatchChannel3>0.86</kuler:swatchChannel3>
                        <kuler:swatchChannel4>0.25</kuler:swatchChannel4>
                        <kuler:swatchIndex>1</kuler:swatchIndex>
                    </kuler:swatch>
                    <kuler:swatch>
                        <kuler:swatchHexColor>B8495D</kuler:swatchHexColor>
                        <kuler:swatchColorMode>cmyk</kuler:swatchColorMode>
                        <kuler:swatchChannel1>0.01</kuler:swatchChannel1>
                        <kuler:swatchChannel2>0.61</kuler:swatchChannel2>
                        <kuler:swatchChannel3>0.5</kuler:swatchChannel3>
                        <kuler:swatchChannel4>0.27</kuler:swatchChannel4>
                        <kuler:swatchIndex>2</kuler:swatchIndex>
                    </kuler:swatch>
                    <kuler:swatch>
                        <kuler:swatchHexColor>520641</kuler:swatchHexColor>
                        <kuler:swatchColorMode>cmyk</kuler:swatchColorMode>
                        <kuler:swatchChannel1>0.0</kuler:swatchChannel1>
                        <kuler:swatchChannel2>0.926829</kuler:swatchChannel2>
                        <kuler:swatchChannel3>0.207317</kuler:swatchChannel3>
                        <kuler:swatchChannel4>0.678431</kuler:swatchChannel4>
                        <kuler:swatchIndex>3</kuler:swatchIndex>
                    </kuler:swatch>
                    <kuler:swatch>
                        <kuler:swatchHexColor>CC0000</kuler:swatchHexColor>
                        <kuler:swatchColorMode>cmyk</kuler:swatchColorMode>
                        <kuler:swatchChannel1>0.0</kuler:swatchChannel1>
                        <kuler:swatchChannel2>1.0</kuler:swatchChannel2>
                        <kuler:swatchChannel3>1.0</kuler:swatchChannel3>
                        <kuler:swatchChannel4>0.2</kuler:swatchChannel4>
                        <kuler:swatchIndex>4</kuler:swatchIndex>
                    </kuler:swatch>
                </kuler:themeSwatches>
            </kuler:themeItem>
            <pubDate>Mon, 24 Sep 2007 15:24:23 PST</pubDate>
        </item>
    </channel>
</rss>
3
  • This should be tagged as php and not as jquery Commented Feb 2, 2013 at 9:56
  • You've said you're using jQuery, but you're showing PHP code. Commented Feb 2, 2013 at 9:57
  • sorry, i meant php. very sorry. totally new to this stuff. Commented Feb 2, 2013 at 10:50

1 Answer 1

1

There are two common ways to do it in PHP. First, using the simple xml extension (as you already doing):

$feed = simple_xml_load_file('url');
// resister the kuler namespace
$feed->registerXpathNamespace('kuler', 'http://kuler.adobe.com/kuler/API/rss/');
// get elements regardless of their position in tree -> //
$result = $feed->xpath('//kuler:swatchHexColor');

// iterate through the result set 
foreach ($result as $item)   {
  echo $item, PHP_EOL;
}

You can also use the DOM extension:

$feed = new DOMDocument();
$feed->load('url');

// create an xpath selector for the document
$selector = new DOMXPath($feed);
// register the kuler namespace
$selector->registerNamespace('kuler', 'http://kuler.adobe.com/kuler/API/rss/');

// get elements regardless of postion in tree -> //
$result = $selector->query('//kuler:swatchHexColor');

// iterate trough the result set
foreach ($result as $node) {
    // do what you want with the node ...
    echo $node->nodeValue, PHP_EOL;
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.