我有一个java类,它将xslt应用于目录中的所有xml文件,并对找到的每个xml执行转换,并打印出完整的文件名。
我的问题是如何创建一个xml(Files.xml),它具有以下格式,然后将文件名,文件类型和文件扩展名输出到Files.xml?
<files>
<file>
<name> ThisFile </name>
<type> xml </type>
<extension> .xml </extension>
</file>
<file>
<name> AnotherFile </name>
<type> xml </type>
<extension> .xml </extension>
</file>
etc....
</files>
我再一次感谢我得到的任何帮助!
答案 0 :(得分:1)
我建议使用序列化实用程序(如JAXB或XStream)直接序列化文件模型,但我在这里留下一个从头开始构建文档的小样本。
public void serializeXmlFiles(ArrayList<File> files) throws ParserConfigurationException, TransformerException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
Element filesElement = doc.createElement("files");
doc.appendChild(filesElement);
for (File file : files) {
Element fileElement = doc.createElement("file");
Element nameElement = doc.createElement("name");
nameElement.setTextContent(file.getName());
Element typeElement = doc.createElement("type");
typeElement.setTextContent("xml");
Element extElement = doc.createElement("extension");
extElement.setTextContent(".xml");
fileElement.appendChild(nameElement);
fileElement.appendChild(typeElement);
fileElement.appendChild(extElement);
filesElement.appendChild(fileElement);
}
saveXMLDocument("files.xml", doc);
}
public boolean saveXMLDocument(String fileName, Document doc) throws TransformerException {
File xmlOutputFile = new File(fileName);
FileOutputStream fos;
Transformer transformer;
try {
fos = new FileOutputStream(xmlOutputFile);
} catch (FileNotFoundException e) {
return false;
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(fos);
transformer.transform(source, result);
return true;
}
希望它有所帮助。