2008-12-19 75 views
1

我需要再次提供您的專業知識。我有一個java類,它在目錄中搜索xml文件(顯示它在eclipse控制檯窗口中找到的文件),將指定的xslt應用於這些文件並將輸出發送到目錄。使用java創建xml

我現在要做的是創建一個包含文件名和文件格式類型的xml。格式應該是這樣的;

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

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

如果每個文件發現在它創建一個新<file>的目錄。

任何幫助是真正讚賞。

回答

3

看一看DOM和ECS。下面的例子適應於您的需求從here

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

也只是使用StringBuilder:

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

壞主意。如果你有任何需要用XML轉義的字符的文件名,你會遇到麻煩。有一個原因,爲什麼有XML庫... – 2008-12-19 11:00:37

10

使用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); 
1

您可以使用Vinze建議StringBuilder的方法,但有一點需要注意的是,你需要確保你的文件名不包含任何特殊的XML字符,轉義如果他們這樣做(例如將<替換爲& lt,並適當處理引號)。

在這種情況下,它可能不會出現,並且您將在沒有它的情況下離開,但是如果您曾經移植此代碼以便在其他情況下重用,則可能會被此事咬傷。所以你可能想看看一個XMLWriter類,它將爲你做所有的轉義工作。