/* http://es.stackoverflow.com/q/36168/127 */
import java.util.*;
import java.lang.*;
import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
try {
//Simulamos con valores predefinidos
String nombre
= "AlgĂșn nombre"; String constrasena
= "Esta es la clave"; System.
out.
println(constrasena
);
//String filepath = ("file.xml");
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
/*
try {
doc = docBuilder.parse(filepath);
} catch (SAXException ex) {
Logger.getLogger(agregar.class.getName()).log(Level.SEVERE, null, ex);
}
*/
//cargamos el xml desde String en vez de un filepath
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><usuarios>",
" <grupo id=\"2cm3\">",
" <usuario id=\"admin\">",
" <tipo>administrador</tipo>",
" <userName>admin</userName>",
" <password>admin</password>",
" </usuario>",
" </grupo>",
" <grupo id=\"2cm4\">",
" <usuario id=\"admin\">",
" <tipo>administrador</tipo>",
" <userName>admin</userName>",
" <password>admin</password>",
" </usuario>",
" </grupo>",
" </usuarios>"
);
//System.out.println(xml);
doc = docBuilder.parse(is);
Node company = doc.getFirstChild();
Node staff = doc.getElementsByTagName("grupo").item(1);
NamedNodeMap attr = staff.getAttributes();
Node nodeAttr = attr.getNamedItem("id");
System.
out.
println("grupo"+nodeAttr.
getTextContent()); // Get the root element
Element usuario
= doc.
createElement("usuario"); usuario.setAttribute("id", nombre);
Element tip
= doc.
createElement("tipo"); tip.appendChild(doc.createTextNode(tipo));
usuario.appendChild(tip);
Element name
= doc.
createElement("userName"); name.appendChild(doc.createTextNode(nombre));
usuario.appendChild(name);
Element pass
= doc.
createElement("password"); pass.appendChild(doc.createTextNode(constrasena));
usuario.appendChild(pass);
staff.appendChild(usuario);
DOMSource source = new DOMSource(doc);
// write the content into xml file
/*
Transformer transformer = null;
try {
transformer = transformerFactory.newTransformer();
} catch (TransformerConfigurationException ex) {
Logger.getLogger(agregar.class.getName()).log(Level.SEVERE, null, ex);
}
StreamResult result = new StreamResult(new File(filepath));
*/
//El resultado en String en vez de a un xml
StreamResult result = new StreamResult(writer);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(source, result);
//response.sendRedirect("admin");
System.
out.
println("\nRESULTADO:"); System.
out.
println(writer.
toString()); ex.printStackTrace();
}
}
}