ITPub博客

首页 > 应用开发 > XML/XSL > 如何将一个xml的名称、文件类型和文件扩展名输出到另一个xml

如何将一个xml的名称、文件类型和文件扩展名输出到另一个xml

XML/XSL 作者:itchaindev 时间:2022-04-16 13:11:04 0 删除 编辑

问题

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

解决方案

我建议使用像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;
}

文章来源: 如何将一个xml的名称、文件类型和文件扩展名输出到另一个xml


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70016198/viewspace-2887443/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-04-02

  • 博文量
    12
  • 访问量
    3426