2012-02-10 85 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解析器,因为它具有较小的内存占用量。

相关问题