# XPathAPI.selectSingleNode + Namespaces



## dionyssos80 (10. Jul 2007)

Hallo,

ich habe ein Document doc und will mittels selectSingleNode und Xpath mir einen speziellen Knoten selektieren und dieses in ein neues Document schreiben.
Das geht auch alles super aber in dem neuen Document fehlen mir die Namespaces aus dem alten.

Wie kann ich dir ebenfalls in das neue schreiben?

Danke


----------



## Zed (10. Jul 2007)

Namespace musst halt im neuen Document als Attribut vom Rootelement setzen


----------



## Guest (10. Jul 2007)

ich würde aber gerne die alten auslesen und dann neu setzen wie geht das?


Danke


----------



## Zed (10. Jul 2007)

Hängt immer davon ab welches System du benutzen tust. Ich bin z.B. ein Fan von dom4j 

Mit dom4j geht das so.


```
try {
			SAXReader reader = new SAXReader();
			Document doc1 = reader.read("C:/fu.xml");
			Document doc2 = reader.read("C:/bar.xml");
			for (Iterator itr = doc1.getRootElement().attributeIterator(); itr.hasNext();) {
				Attribute att = (Attribute)itr.next();
				doc2.getRootElement().addAttribute(att.getName(), att.getValue());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
```

Das sollte schon so tun. Habs natürlich net getestet


----------



## Guest (10. Jul 2007)

danke,

meine lösung:

	NamedNodeMap map = doc.getDocumentElement().getAttributes();

		for(int i=0; i< map.getLength();i++){

			Node temp = map.item(i);
			doc2.getDocumentElement().setAttribute(temp.getNodeName(), temp.getNodeValue());
		}


----------

