I created a simple class to create an XML document. However, if I call the method more than once while creating a document of the same name the file does not overwrite. How could I make the class automatically overwrite existing files of the same name?
import java.io.File;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; импорт javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document; import org.w3c.dom.Element;
открытый класс XMLCreater {public static void CreateXMLDoc (имя строки, корень строки, элементы String [], дочерние элементы String []) выбрасывает исключение TransformerConfigurationException {попробуйте {DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance (); DocumentBuilder docBuilder = docFactory.newDocumentBuilder (); Документ doc = docBuilder.newDocument (); Элемент rootElement = doc.createElement (root); doc.appendChild (rootElement);
for (int i = 0; i < elements.length; i ++) { Element element = doc.createElement(elements[i]); element.appendChild(doc.createTextNode(children[i])); rootElement.appendChild(element); } TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); File dir = new File(System.getProperty("user.dir")); StreamResult result = new StreamResult(new File(dir + "\\XML\\" + name + ".xml")); transformer.transform(source, result); } catch(ParserConfigurationException pce){ pce.printStackTrace(); } catch(TransformerException tfe) { tfe.printStackTrace(); } }
}