【问题标题】:How to determine whether a given file is an xml valide file如何确定给定文件是否为 xml 验证文件
【发布时间】:2014-12-26 09:35:02
【问题描述】:

JAVA中如何判断给定文件是否为xml验证文件?

例如:

bool valide = IsAnXMLFile(new File("file.txt"));

谢谢。

【问题讨论】:

标签: java xml


【解决方案1】:

您只需使用解析器加载文件即可检查格式是否正确。如果文件引用了一个 dtd,那么它也会针对这个 dtd 进行验证(这要求 dtd 出现在指定的位置)。如果您使用模式语言 (f.i. xsd),则需要在加载文件时手动验证文件。 JAXP 是这里的关键字!

这是一个用于验证模式的小 sn-p:

SchemaFactory schemaFactory = SchemaFactory.newInstance(schemaLanguage.getId());
schemaFactory.setResourceResolver(getLSResourceResolver()); //optional

Schema schema = schemaFactory.newSchema(schemaURL)
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File(...)));

【讨论】:

    【解决方案2】:
    public boolean valide(String filename) throws JDOMException, IOException
    { 
            SAXBuilder builder = new SAXBuilder();  
            try{
                     Document doc = builder.build(new File(filename));     
                   } catch (JDOMParseException ex) {
                     return false;
                    }
             return true;
    }
    

    【讨论】:

    • 只有在文档中指定了 DTD 或内联指定了 doctype 时才进行验证。对于基于模式的验证,请参见上文。
    猜你喜欢
    • 2013-04-14
    • 2010-10-30
    • 2013-05-21
    • 2018-11-15
    • 1970-01-01
    • 2021-12-17
    • 2019-09-26
    • 1970-01-01
    • 2021-02-15
    相关资源
    最近更新 更多