2012-02-10 92 views
0

使用Java,有沒有辦法查看一些文件的內容,比如文件的字符串表示,並確認或否認它代表一個XML文件?如何確認文件是XML格式?

你會選擇什麼庫來解析文件?你能否提供一個例子?

回答

3

IMO 最快的方法是查看它是否解析,特別是如果您有DTD/XSD。您無需使用任何常規XML解析庫就可以檢查格式良好。

否則,不太確定你可以做什麼。

+0

有沒有一個解析器庫,你可以推薦我看? – JAM 2012-02-10 21:51:39

+0

同意。可解析是/否是一個好的測試。 – 2012-02-10 21:53:17

+0

@JAM有這麼多......不知道當前的寶貝是什麼; dom4j很容易,但也許有點老。有jdom,jaxb ...我傾向於使用我項目中已有的任何東西,所以我非常不可知 - 其他人可能會提出一些建議。 – 2012-02-10 21:56:43

1

如果你對解析的結果不感興趣,只有在yes/no表示它是否格式良好,那麼你應該使用SAX解析器;如果您使用XMLFilter類作爲您提供的ContentHandler,那麼來自解析器的所有信息將立即被丟棄,並且只要發現語法錯誤,該過程就會終止。

0

那麼,你可以檢查根標籤:<?xml version="" ?>來檢查它是否是XML。但是,如果您希望驗證指定了模式或DTD的XML文檔,那麼只需從兩個JAXP解析器工廠之一創建一個驗證解析器:SAXParserFactory和DOMBuilderFactory。如果只驗證,則使用SAX解析器,因爲它具有較小的內存佔用量。