<?xml version="1.0" encoding="windows-1252"?>
<node id="1012420" title="Re: XML::Simple - Handling inconsistency" created="2013-01-09 05:27:08" updated="2013-01-09 05:27:08">
<type id="11">
note</type>
<author id="757127">
tobyink</author>
<data>
<field name="doctext">
&lt;p&gt;You appear to be trying to parse SPARQL result sets. There are some really good RDF/SPARQL modules for Perl, so you needn't be mucking around with XML stuff!&lt;/p&gt;
&lt;c&gt;
use strict;
use warnings;

use RDF::Query::Client;

my $query = RDF::Query::Client-&gt;new(&lt;&lt;'SPARQL');
PREFIX category: &lt;http://dbpedia.org/resource/Category:&gt;
PREFIX dc:       &lt;http://purl.org/dc/terms/&gt;
PREFIX rdfs:     &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
SELECT *
WHERE {
	?resource dc:subject category:English_film_actors .
	?resource dc:subject category:Life_peers .
	?resource rdfs:label ?name .
	FILTER ( langMatches(lang(?name), "en") )
}
SPARQL

my $results = $query-&gt;execute('http://dbpedia.org/sparql');
while (my $row = $results-&gt;next)
{
	printf(
		"%s &lt;%s&gt;\n",
		$row-&gt;{name}-&gt;literal_value,
		$row-&gt;{resource}-&gt;uri,
	);
}
&lt;/c&gt;

&lt;!-- Node text goes above. Div tags should contain sig only --&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-757127"&gt;
&lt;small&gt;&lt;small&gt;
&lt;tt&gt;perl -E'sub Monkey::do{say$_,for@_,do{($monkey=&amp;#x5B;caller(0)]-&gt;&amp;#x5B;3])=~s{::}{ }and$monkey}}"Monkey say"-&gt;Monkey::do'
&lt;/tt&gt;&lt;/small&gt;&lt;/small&gt;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
1012392</field>
<field name="parent_node">
1012392</field>
</data>
</node>
