English 中文(简体)
使用Java创建XML
原标题:
  • 时间:2008-12-19 10:51:21
  •  标签:

我再次需要您的专业知识。我有一个Java类,它搜索目录中的XML文件(在Eclipse控制台窗口中显示找到的文件),并对其应用指定的XSLT,将输出发送到目录。

我现在想要做的是创建一个包含文件名称和文件格式类型的XML。格式应该类似于;

<file>
      <fileName>         </fileName>
      <fileType>       </fileType>
</file>

<file>
     <fileName>         </fileName>
     <fileType>       </fileType>
</file>

对于找到的目录中每个文件,它都会创建一个新的<file>

任何帮助都非常感激。

最佳回答

请看DOM和ECS。以下例子是从这里根据您的要求适应的:

XMLDocument document = new XMLDocument();
for (File f : files) {
    document.addElement( new XML("file")
        .addXMLAttribute("fileName", file.getName())
        .addXMLAttribute("fileType", file.getType())
      )
    );
}
问题回答

使用XML库。有很多库可供选择,第三方库几乎都比Java内置的DOM API更易用。我最近用过的是JDom,它还不错。(我最近没有太多的XML工作。)

某种程度上:

Element rootElement = new Element("root"); // You didn t show what this should be
Document document = new Document(rootElement);

for (Whatever file : files)
{
    Element fileElement = new Element("file");
    fileElement.addContent(new Element("fileName").addContent(file.getName());
    fileElement.addContent(new Element("fileType").addContent(file.getType());
}

String xml = XMLOutputter.outputString(document);

你可以使用Vinze建议的StringBuilder方法,但其中一个警告是你需要确保你的文件名不包含特殊的XML字符并且在必要的时候进行转义(例如将 < 替换为 &lt;,并且适当处理引号)。

在这种情况下,这可能不会出现,并且您将摆脱它,但是如果您将此代码移植以在另一个情况中重用,则可能会受到此类问题的影响。因此,您可能需要查看一个XMLWriter类,它会为您完成所有的转义工作。

好吧,我们只需使用 StringBuilder:

StringBuilder builder = new StringBuilder();
for(File f : files) {
    builder.append("<file>
	<fileName>").append(f.getName).append("</fileName>
)";
    [...]
}
System.out.println(builder.toString());




相关问题
热门标签