Così ho un documento XML che ho dichiarato qui:Trova elementi in un nodo senza la corretta namespace, in Java
DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
doc_ = dBuilder.parse(inputSource);
Poi ho una funzione in cui passo in una stringa e voglio corrispondere a quello di un elemento a mio xml:
void foo(String str)
{
NodeList nodelist = doc_.getDocumentElement().getElementsByTagName(str);
}
il problema è quando il str
arriva in esso non ha alcun tipo di spazio dei nomi in modo che il xml che sarei stato il test potrebbe essere:
<Random>
<tns:node />
</Random>
e il str
sarà nodo. Quindi nodelist ora è nullo perché prevede tns: node ma ho passato nel nodo. E so che non è bello ignorare lo spazio dei nomi, ma in questo caso va bene. Il mio problema è che non so come cercare il Nodo per un elemento ignorando lo spazio dei nomi. Ho anche pensato di aggiungere lo spazio dei nomi allo str che arriva ma non ho idea di come farlo.
Qualsiasi aiuto sarebbe molto apprezzato,
Grazie, -Josh
Grazie mille per un'altra fantastica risposta RD01. – Grammin
@gramm nessun problema :) –
Sembra funzionare solo per gli oggetti "DocumentBuilderFactory'" namespace-aware ", poiché gli elementi creati dal livello 1 di DOM non hanno un' localName' ... –