Alcuni nodi di un documento XML hanno spazi dei nomi, specificati con un prefisso definito.Perché non esiste una sintassi XPath per i nodi qualificati per lo spazio dei nomi?
È possibile specificare nome locale() in XPath 1.0 e quindi ignorare i namespace.
Tuttavia, voglio consentire al writer dell'XPath di trovare i nodi utilizzando il loro nome completo dello spazio dei nomi come identificatore.
Il modo consigliato è aggiungere dichiarazioni di namespace nel codice di richiamo (nel mio caso, Java). Ma questo significa che la persona che scrive Xpath non ha la capacità di lavorare con i namespace!
Come troviamo i nodi con i nomi completi con XPath puro?
Se ho capito bene la domanda, mi chiedi perché c'è bisogno di dichiarare uno spazio dei nomi usando un'istruzione come 'addNamespace (" abc "," http://example.com ")' che quindi permette di fare un Query Xpath come '/ abc: node', invece di usare in qualche modo' http: // example.com' direttamente nella query. Ho interpretato correttamente la domanda? –
@Jong Bor Sì, è tutto. Sarebbe bene usare il prefisso abc direttamente nella query XPath dopo aver dichiarato che abc = http: //example.com in qualche modo all'interno dell'XPath. Capisco che le espressioni XPath siano brevi e non sarebbe usuale inserire definizioni, ma non c'è nulla che tecnicamente impedisca di essere possibile in XPath. –
Buona domanda, +1. Poiché i prefissi devono essere semplicemente sintattici, mentre gli URI dello spazio dei nomi sono ciò che è significativo, si potrebbe pensare che potrebbe essere utile associare su un nome nodo l'URI dello spazio dei nomi senza dover confondere con un prefisso - specialmente se XPath stesso fornisce nessun modo per dichiarare un prefisso. – LarsH