je le fichier XML suivant:fichier XML avec nokogiri Parsing
<?xml version='1.0' encoding='UTF-8'?>
<sparql xmlns='http://www.w3.org/2005/sparql-results#'>
<head>
<variable name='s'/>
</head>
<results>
<result>
<binding name='s'>
<uri>http://data.open.ac.uk/podcast/c9ddc42f6e1db95f59c83312d62da0ee</uri>
</binding>
</result>
<result>
<binding name='s'>
<uri>http://data.open.ac.uk/podcast/18873effb6c38ed83a7522ffb7c61c1b</uri>
</binding>
</result>
</results>
</sparql>
Je veux obtenir les URIs du document. J'ai essayé ces commandes:
doc = Nokogiri::XML(File.open("file.xml"))
doc.xpath("//uri")
mais il retourne nul.
Cependant, si je le fichier modifié à ceci:
<results>
<result>
<binding name='s'>
<uri>http://data.open.ac.uk/podcast/c9ddc42f6e1db95f59c83312d62da0ee</uri>
</binding>
</result>
<result>
<binding name='s'>
<uri>http://data.open.ac.uk/podcast/18873effb6c38ed83a7522ffb7c61c1b</uri>
</binding>
</result>
</results>
Les commandes ci-dessus renvoient les URIs correctement.
Vous pouvez également utiliser la 'css() 'method (qui ignore les espaces de noms), ie' doc.css ('uri') 'ou utilise l'approche nucléaire destructrice de' doc.remove_namespaces! 'et alors votre code original fonctionnera. – Phrogz