DOM NameSpace Prefix löschen

Gambler79

Grünschnabel
Hallo,

ich habe eine XML-Datei, wobei alle Knoten mit einem Namespace Prefix versehen sind. kann ich beim einlesen in ein DOM Document diesen Namespace Prefix weglassen? ich möchte wirklich nur den Knotennamen haben, da ich später beim schreiben, den Prefix nicht mehr benötige.

Ich habe schon mit der DocumentBuilderFactory der Standard Java API (kann ein JDOM oder DOM4J verwenden) experimentiert, aber weder:

setNamespaceAware(true / false); noch
setFeature("http://xml.org/sax/features/namespaces", true / false);

haben irgendwas gebracht.


Danke für Eure Hilfe...

Grüße

Rene
 
Warum liest Du nicht die LocalName statt der Name Property?

Java:
package de.tutorials;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class NamespaceDemo {

	public static void main(String[] args) {
		
		
		try {
			DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
			documentBuilderFactory.setNamespaceAware(true);
			DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
			
			Document document = documentBuilder.parse("NewFile.xml");
			Element element = (Element) document.getChildNodes().item(0);
			
			System.out.println(element.getLocalName());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
}
 
Hallo,

danke für Deine Antwort,

das Problem dabei ist folgendes, natürlich könnte ich in meiner Klasse, mit LocalName arbeiten. Das Problem sind die Klassen an die ich das XML Dokument weitergebe. Diese haben eigentlich keine Kenntnis vom Namespace und arbeiten auch nicht mit LocalName ... Ich habe auch keinen Einfluss darauf.

Ich habe jetzt mit JAXB eine Krücke gebaut uns lasse mir den Namespace löschen. Es funktioniert ... toll ist es aber nicht ... vielleicht noch ne andere Idee ?

Danke ...
 
Hi,

hier mal ein Schuss ins Blaue: Hast Du schon mal an eine XSLT - Transformation gedacht. Soweit ich weiss gibt es da einen Schalter namens exclude-result-prefixes="#all" vielleicht hilft der.

Ohne Gewähr

Limago
 
Zurück