博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML的学习
阅读量:5218 次
发布时间:2019-06-14

本文共 2436 字,大约阅读时间需要 8 分钟。

一、用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")));    }}

 

转载于:https://www.cnblogs.com/erdanyang/p/10310905.html

你可能感兴趣的文章
CentOS安装MySQL的完整步骤
查看>>
正则--密码强度验证
查看>>
C#电脑自动关机代码指令
查看>>
Problem D: Flip Five
查看>>
uva 10603
查看>>
Struts2面试题
查看>>
GIT分支管理是一门艺术
查看>>
hdu 6073 Matching In Multiplication(拓扑排序+欧拉回路)
查看>>
挂载数据盘
查看>>
lintcode-28-搜索二维矩阵
查看>>
【洛谷1501】[国家集训队] Tree II(LCT维护懒惰标记)
查看>>
764. Largest Plus Sign
查看>>
驱动-helloworld(第一天)
查看>>
loj#6281. 数列分块入门 5
查看>>
hdoj5893
查看>>
理解管理信息系统
查看>>
第三章:选择结构(一)
查看>>
缓存(Cache)学习笔记
查看>>
Vue2.0 的漫长学习ing-1-3
查看>>
mount命令(用来挂载硬盘或镜像等)
查看>>