4

I am attempting to build out a dashboard widget that will perform a validation check on a site RSS feed using the W3 Validator. Their API docs (http://feed2.w3.org/docs/soap.html) provide the method. Here is my function to get the data:

    $feed       = 'http://domain.com/feed/';
    $request    = new WP_Http;
    $url        = 'http://validator.w3.org/feed/check.cgi?url='.urlencode($feed).'&output=soap12';
    $response   = wp_remote_get ( $url );


    if( is_wp_error( $response ) ) {
        echo '<p>Sorry, there was an error with your request.</p>';
    } else {
        $feed_data  = $response['body'];
    }

Here is the return: http://pastie.org/4397488

For the life of me, I cannot seem to parse out that XML properly. Is there a 3rd party library I should be using, or is there a native WP function that will handle this?

2
  • This seems more like a general PHP question, not a WP question. PHP has built XML parsing facilities: php.net/manual/en/book.xml.php Commented Aug 6, 2012 at 4:34
  • 1
    I understand its PHP related, however, I'm doing it within WP and I want to stick with native WP functionality if at all possible Commented Aug 6, 2012 at 12:10

1 Answer 1

5

Lots of places in WordPress use xml_parse including the Atom library, the XML-RPC Library that we use, and SimplePie

The oembed class uses SimpleXML.

The WordPress Importer and Jetpack actually use both (Jetpack for different things, and the importer tries to use SimpleXML and falls back if it doesn't exist).

Basically, there's nothing built into WordPress, it just uses what's built into PHP. I personally like (and use) SimpleXML as long as the XML isn't going to be too big (I mean really big), just because you can simply pass the whole XML string to it and get back an object you can work with.

1
  • Thanks man. passing the response into a string with simplexml_load_string was the piece I was missing Commented Aug 6, 2012 at 15:49

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.