So habe ich ein XML-Dokument, das ich hier erklärt habe:Finden Elemente in einem Knoten ohne den richtigen Namensraum, in Java
DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
doc_ = dBuilder.parse(inputSource);
Dann habe ich eine Funktion, wo ich in einem String übergeben, und ich möchte überein, dass ein Element in meinem xml:
void foo(String str)
{
NodeList nodelist = doc_.getDocumentElement().getElementsByTagName(str);
}
das Problem ist, wenn die str
darin kommt nicht jede Art von Namensraum darin hat, so dass die xml, dass ich Tests wären sei:
<Random>
<tns:node />
</Random>
und der str
wird Knoten sein. Also ist nodelist jetzt null, weil es den tns: node erwartet, aber ich habe den Knoten übergeben. Und ich weiß, dass es nicht gut ist, den Namensraum zu ignorieren, aber in diesem Fall ist es in Ordnung. Mein Problem ist, dass ich nicht weiß, wie man den Knoten nach einem Element durchsucht, während ich den Namespace ignoriere. Ich habe auch darüber nachgedacht, den Namespace dem Str hinzuzufügen, der hereinkommt, aber ich habe auch keine Idee, wie ich das machen soll.
Jede Hilfe wäre sehr geschätzt,
Danke, -Josh
Vielen Dank für eine weitere tolle Antwort RD01. – Grammin
@gramm kein Problem :) –
Das scheint nur für "namespace-aware" "DocumentBuilderFactory" -Objekte zu funktionieren, da DOM Level 1-erstellte Elemente keinen 'localName' haben ... –