Lately, I've been attempting to teach myself XML. I've almost completely read "Learning XML" (O'Reilly) and "XML Visual Quickstart" (Peachpit). I've read much of O'Reilly's new book, "Perl & XML"--a very well written and useful book on the subject, incidentally. I've been reading tutorials and articles and postings and so forth all over the web (include PM using SuperSearch). I'm worn out on the subject, but I am starting to put things together in my head and on my computer. However, I need a little help with one of my learning exercises I created for myself.
Below is a simple script I whipped together to experiment with the Perl module, XPath. The script reads in an XML text file which I copied from the Newest Nodes XML Generator link.
#!/usr/bin/perl use CGI; use XML::XPath; use XML::XPath::XMLParser; my $q = new CGI; my $file = 'newmonk_perlquestions.xml'; my $xpath = XML::XPath->new(filename=>$file); # Find only new perl questions my $nodeset = $xpath->find('//NODE[@nodetype="perlquestion"]'); # Create web page to display matching nodes print $q->header( -type=>'text/html'), $q->start_html(-title=>'New Perl Questions'), "<b>New Perl Questions</b>", $q->br, $q->hr, foreach $node($nodeset->get_nodelist) { $nodeinfo = XML::XPath::XMLParser::as_string($node); $nodeinfo =~ /node_id=\"(\d+)/; print $q->a({-href=>"http://www.perlmonks.org/index.pl?node_id=$1"}, $nodeinfo), $q->br; } print $q->end_html; exit;
This works fine. However, I thought it would be cool to have $file point to the PM site address rather than a copy saved to my server. When I replace the $file declaration line with the following:
my $file = "http://www.perlmonks.org/index.pl?node=newest%20nodes%20xm +l%20generator";
I get a "Cannot open file..." error message. I can open it manually in my web browser, but not through this Perl script. I know I'm missing something conceptually, as well as specifically. Can any one help me with this exercise?
In reply to Using XPath to Retrieve Remote XML Data by Spenser
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |