• XML的学习


    一、用jaxp(java自带)实现xml的解析与校验:

    package org.eclipse.winery.repository;
    
    import java.io.File;
    import java.net.URL;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.validation.Schema;
    import javax.xml.validation.SchemaFactory;
    
    import org.w3c.dom.Document;
    import org.xml.sax.ErrorHandler;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    
    /**
     * Hello world!
     *
     */
    public class App {
        public static void main(String[] args) throws Exception {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);// 让解析器支持命名空间
            factory.setValidating(true);// 设置解析器在解析文档的时候校验文档
            SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
            URL resource = App.class.getResource("/web-app_3_1.xsd");
            Schema schema;
            schema = schemaFactory.newSchema(resource);
            factory.setSchema(schema);// 使用具体的xsd进行校验
            DocumentBuilder db = factory.newDocumentBuilder();
            db.setErrorHandler(new ErrorHandler() {
    
                @Override
                public void warning(SAXParseException exception) throws SAXException {
                    // TODO Auto-generated method stub
                    System.out.println("warning" + exception.getMessage());
                }
    
                @Override
                public void fatalError(SAXParseException exception) throws SAXException {
                    // TODO Auto-generated method stub
                    System.out.println("fatalError" + exception.getMessage());
                }
    
                @Override
                public void error(SAXParseException exception) throws SAXException {
                    // TODO Auto-generated method stub
                    System.out.println("error" + exception.getMessage());
                }
            });// 添加ErrorHandler,将解析的异常手动抛出
            Document doc = db.parse(App.class.getResourceAsStream("/web.xml"));
            TransformerFactory tff = TransformerFactory.newInstance();
            Transformer tf = tff.newTransformer();
            tf.setOutputProperty(OutputKeys.INDENT, "yes");//输出换行
            tf.transform(new DOMSource(doc), new StreamResult(new File("result.xml")));
    
        }
    }
  • 相关阅读:
    实时控制软件设计-读书笔记
    1月9号
    第一组咖啡机器人部分图形设计
    《构建之法:现代软件工程》阅读笔记
    《实时控制软件设计》第三周作业
    实时控制软件设计第二次作业
    《实时控制软件设计》团队项目个人总结
    《实时控制软件设计》团队项目第三天工作日志
    《实时控制软件设计》团队项目第三天工作日志
    《实时控制软件设计》团队项目第二天工作日志
  • 原文地址:https://www.cnblogs.com/erdanyang/p/10310905.html
Copyright © 2020-2023  润新知