Quando fai una ricerca, ad esempio, "History of Berlin", stai richiedendo un URL come
E stai tornando un risultato XML come questo:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfResult
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://lookup.dbpedia.org/">
<Result>
<Label>Museum für Naturkunde</Label>
<URI>http://dbpedia.org/resource/Museum_für_Naturkunde</URI>
<Description></Description>
<Classes></Classes>
<Categories></Categories>
<Templates></Templates>
<Redirects></Redirects>
<Refcount>155</Refcount>
</Result>
<Result>
<Label>History of Berlin</Label>
<URI>http://dbpedia.org/resource/History_of_Berlin</URI>
<Description>
Berlin is the capital city of Germany. Berlin is a young city by European standards, founded in the 12th century.
</Description>
<Classes></Classes>
<Categories>
<Category>
<Label>History of Berlin</Label>
<URI>http://dbpedia.org/resource/Category:History_of_Berlin</URI>
</Category>
<Category>
<Label>History of Germany by location</Label>
<URI>http://dbpedia.org/resource/Category:History_of_Germany_by_location</URI>
</Category>
</Categories>
<Templates></Templates>
<Redirects></Redirects>
<Refcount>14</Refcount>
</Result>
</ArrayOfResult>
Hai ragione che ci siano URI
elementi con categoria Uris, ad esempio,
<URI>http://dbpedia.org/resource/Category:History_of_Berlin</URI>
Ma quello che dovresti notare è che dalla radice del documento ci sono
ArrayOfResult/Result/Categories/Category/URI
elementi, mentre gli elementi che desideri sono
ArrayOfResult/Result/URI
elementi. Devi solo elaborare il tuo XML in modo leggermente diverso; Non ottenere tutto il contenuto di tutto URI
elementi, ma solo dal URI
elementi che sono bambini di Result
elementi. Non sono così familiare con l'analisi del sax, ma penso che il punto importante sia che una volta entrato in un Result
, dovresti solo prendere il URI
Se non sei entrato in un altro elemento figlio di Result
.