【问题标题】:How do I output the name, file type and file extension of an xml to another xml如何将一个xml的名称、文件类型和文件扩展名输出到另一个xml
【发布时间】:2010-09-30 06:11:08
【问题描述】:

我有一个 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>

再次感谢我得到的任何帮助!

【问题讨论】:

    标签: java xml


    【解决方案1】:

    我建议使用像JAXBXStream 这样的序列化实用程序来直接序列化文件模型,但我给你留下了一个从头开始构建文档的小示例。

    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;
    }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 2018-09-28
      相关资源
      最近更新 更多