0
Ich möchte XML mit speziellen Tags erstellen. Ich habe versucht, es mit Dom zu machen, aber es hat nicht funktioniert.Xml Builder mit spezifischen Tags in Java
Ich möchte diese XML bauen:
<om2m:ae xmlns:om2m="http://www.onem2m.org/xml/protocols">
<api>app-sensor</api>
<lbl>Type/sensor Category/temperature Location/home</lbl>
<rr>false</rr>
</om2m:ae>
Wie ich das tun, was soll ich verwenden?
habe ich versucht, diesen Code:
public String XMLBuilder(String process, HashMap<String, String> mapHash) {
String returnVal = "";
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement;
if (process.equals("ae")) {
// root elements
rootElement = doc.createElementNS("http://www.onem2m.org/xml/protocols","m2m:ae");
doc.appendChild(rootElement);
}
Iterator it = mapHash.entrySet().iterator();
// Fill to xml
while (it.hasNext()) {
Map.Entry hashList = (Map.Entry) it.next();
Element val = doc.createElement(String.valueOf(hashList.getKey()));
val.appendChild(doc.createTextNode(String.valueOf(hashList.getValue())));
doc.appendChild(val);
}
// write the content into xml file
DOMSource source = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(source, result);
returnVal = writer.toString();
System.out.println(returnVal);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
return returnVal;
}
und ich bin immer Fehler:
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
es hat funktioniert, danke. – Gkan