XML
来源:互联网 发布:js validate 验证 编辑:程序博客网 时间:2024/04/30 01:49
XML
1)<![CDATA[内容]]> 原始内容直接输出
2)DTD
_1当引用文件在本地时 <!DOCTYPE 文档根节点 SYSTEM "DTD文件的URL">
当引用的文件是一个公共文件时 <!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL">
_2引用实体,主要在XML文档中应用 <!ENTITY bookname "javaeb"> 引用实体:&bookname;
参数实体,主要在DTD中应用 <!ENTITY % TAG_NAMES "NAME|EMAIL|PHONE"> 引用实体:%TAG_NAMES;
3)XML编程(CRUD)create read update delete
_1DOM和sax解析方法的区别:dom解析的优点是对文档crud比较方便,缺点是占用内存较大;sax解析的优点是占用内存小,解析速度快,缺点是只适合做文档的读取,不适合做文档的crud
_2jaxp解析
_3Dom4j解析(dom4j包,需要jaxen-1.1-beta包支持)
_4xpath
4)Schema
名称空间,约束语法等
1)<![CDATA[内容]]> 原始内容直接输出
2)DTD
_1当引用文件在本地时 <!DOCTYPE 文档根节点 SYSTEM "DTD文件的URL">
当引用的文件是一个公共文件时 <!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL">
_2引用实体,主要在XML文档中应用 <!ENTITY bookname "javaeb"> 引用实体:&bookname;
参数实体,主要在DTD中应用 <!ENTITY % TAG_NAMES "NAME|EMAIL|PHONE"> 引用实体:%TAG_NAMES;
3)XML编程(CRUD)create read update delete
_1DOM和sax解析方法的区别:dom解析的优点是对文档crud比较方便,缺点是占用内存较大;sax解析的优点是占用内存小,解析速度快,缺点是只适合做文档的读取,不适合做文档的crud
_2jaxp解析
Dom解析:
<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">//1.创建工厂</span>DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//2.得到Dom解析器DocumentBuilder builder = factory.newDocumentBuilder();//3.解析xml文档,得到代表文档的documentDocument document = builder.parse("src/student/practice/xml/book.xml");//........(crud)//注意最后要从内存中写出//把更新后内存写回到xml文档TransformerFactory tff = TransformerFactory.newInstance();Transformer tf = tff.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/student/practice/xml/book.xml")));SAX解析:
//得到解析工厂SAXParserFactory factory = SAXParserFactory.newInstance();//得到解析器SAXParser sp = factory.newSAXParser();//得到读取器XMLReader reader = sp.getXMLReader();//设置内容处理器reader.setContentHandler(解析器类对象);//读取xml文档内容reader.parse("src/student/practice/xml/book.xml");
_3Dom4j解析(dom4j包,需要jaxen-1.1-beta包支持)
SAXReader reader = new SAXReader();Document document = reader.read(new File(filepath));//有时候也会乱码,读取时要把字节编码,如下注释代码://Document document = reader.read(new InputStreamReader(new FileInputStream(filepath),"utf-8"));Element root = document.getRootElement();...//XMLWriter writer = new XMLWriter(new FileWriter(filepath));//默认采用gb2312写入,可能会乱码OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("gb2312");//内存中documentgb2312,gb2312文档写入XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(filepath), "gb2312"), format);//这个不乱码是碰巧,因为控制OutputStreamWriter查gb2312码表,但是FileOutputStream仍然默认是gb2312,所以如果全是utf-8,依然会乱码//可以采用以下代码://XMLWriter writer = new XMLWriter(new FileOutputStream(filepath), "gb2312"), format);writer.write(document);writer.close();
_4xpath
SAXReader reader = new SAXReader();//xpath学习见文档Document document = reader.read(new File(filepath));String value = document.selectSingleNode("//@name").getText();
4)Schema
名称空间,约束语法等
2 0
- XML
- XML
- XML
- XML
- xml
- xml
- XML
- XML
- XML
- xml
- xml
- XML
- XML
- xml
- xml
- xml
- XML
- XML
- Get技能---如何压缩图片文件大小不失真
- 大数据环境基础之Centos安装Haoop集群(2)在CentOS上安装jdk
- ArcGIS10.2下载安装 License Manager、ArcGIS Desktop、ArcGIS Server软件下载及破解
- 求二叉树的深度
- 多少个1组成的整数可以被2011整除?
- XML
- http状态码
- PAT乙级.1038. 统计同成绩学生(20)
- lucence 示例 (三)
- 第三章pmtest2源码解析 实模式到保护模式再到实模式
- codeforces 711D Directed Roads(DFS)
- ios developer tiny share-20160901
- Ubuntu下安装 starUML
- 【MySQL 10】游标