javawebday07补充(jaxp增删查替换节点 2个工厂Document Transformer schema约束入门)
2017-09-22 15:51
344 查看
Window –> Preferences –>Java –>Code Style –>Code Templates–> Code –> Method body
重写时候的注释
重写时候的注释
/** * 表单提交方式 * button提交 * 超链接提交 * 事件 * 文档声明 必须放在第一行第一列 * 设置xml编码和保存编码一致 * XML的特殊字符 * CDATA PI * DTD入门 * 两种约束 dtd和schema * #PCDATA 表名该元素可以包含任何字符数据 但是不能在其中包含任何子元素 * 最好只加入纯文本字符数据 * * @author civilizationV * */ public class TestJaxp { public static void main(String[] args) throws Exception { //selectAll(); // selectSin(); // myAppend(); // change(); del(); } //删除sex节点 public static void del() throws Exception, SAXException, IOException { /* * 1、创建解析器工厂 * 2、根据解析器工厂创建解析器 * 3、解析xml 返回docuemnt * 4、获取sex元素 * 5、获取sex的父节点 * 6、删除使用父节点删除 removeChild方法 * 7、回写xml */ Document document = getDocument(); //得到sex元素 Node sex = document.getElementsByTagName("sex").item(0); //得到sex的父节点 并删除 sex.getParentNode().removeChild(sex); //回写 TransformerFactory tsf = TransformerFactory.newInstance(); Transformer tf = tsf.newTransformer(); tf.transform(new DOMSource(document), new StreamResult("11.xml")); } //使用jaxp添加节点 public static void myAppend() throws Exception, SAXException, IOException { /* * 1、创建解析器工厂 * 2、根据解析器工厂创建解析器 * 3、解析xml 返回docuemnt * 4、得到第一个p1 * 得到所有p1 使用item方法下标得到 * 5、创建sex标签 createElement * 6、创建文本createTextNode * 7、把文本添加到sex下面 appendChild * 8、把sex添加到第一个p1下面 appendChild * 9、回写xml */ Document document = getDocument(); Node p1 = document.getElementsByTagName("p1").item(1); Node sex = document.createElement("sex"); Node text = document.createTextNode("xx"); sex.appendChild(text); p1.appendChild(sex); TransformerFactory tsf = TransformerFactory.newInstance(); Transformer tf = tsf.newTransformer(); tf.transform(new DOMSource(document), new StreamResult("33.xml")); } //使用jaxp修改 节点 public static void change() throws ParserConfigurationException, SAXException, IOException, TransformerException { /* * 1、创建解析器工厂 * 2、根据解析器工厂创建解析器 * 3、解析xml 返回document * 4、得到sex item方法 * 5、修改sex里面的值 setTextContent 方法 * 6、回写xml */ //1.2.3 Document document = getDocument(); //得到sex Node sex = document.getElementsByTagName("sex").item(0); //修改sex sex.setTextContent("男"); //回写xml TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(document), new StreamResult("22.xml")); } //查询xml中第一个name元素的值 public static void selectSin() throws Exception { /* * 1、创建解析器工厂 * 2、根据解析器工厂创建解析器 * 3、解析xml 返回document * 4、得到所有name元素 * 5、使用返回集合里面方法item 下标获取具体的元素 * NodeList.item(下标) 集合下标从0开始 * 6、得到具体的值 使用 getTextContent方法 */ Document document = getDocument(); //得到所有的name元素 NodeList list = document.getElementsByTagName("name"); //使用下标 得到第一个元素 Node name = list.item(0); String s = name.getTextContent(); System.out.println(s); } //查询所有name元素的值 private static void selectAll() throws Exception { Document document = getDocument(); //得到name元素 NodeList list = document.getElementsByTagName("name"); //遍历集合 for (int i = 0; i < list.getLength(); i++) { Node name = list.item(i);//得到每一个name元素 //得到name元素里面的值 String s = name.getTextContent(); System.out.println(s); } } private static Document getDocument() throws ParserConfigurationException, SAXException, IOException { //创建解析器工厂 DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); //创建解析器 DocumentBuilder builder = builderFactory.newDocumentBuilder(); //解析xml得到document Document document = builder.parse("11.xml"); return document; } }
/* * 查询所有的元素的名称 * 查询元素下面的子节点 getChildNodes * XML Schema 也是一种用于定义和描述XML文档结构与内容的模式语言 * 其出现是为了克服DTD的局限性 * Schema和DTD * XML Schema 符合XML语法结构 * DOM、SAX等XML API 等容易解析出XML Schema文档中的内容 * XML Schema对名称空间支持非常好 * XML Schema 比XML DTD 支持更多的数据类型并支持用户自定义新的数据类型 * XML Schema 定义约束的能力非常强大 可以对XML实例文档作出细致的语义限制 * XML Schema不能像DTD 一样定义实体 比DTD 更加复杂 但XML Schema现在已是w3c组织的标准 正逐步替代DTD * dtd语法 <!ELEMENT 元素名称 约束> * schema符合xml的语法 xml * 一个xml中可以有多个schema 多个schema使用名称空间区分(类似于java包名) * dtd里面有PCDATA 类型 但是在schema里面可以支持更多的数据类型 * 比如年龄 只能是整数 在schema可以直接定义一个整数类型 * schema语法更加复杂 * schema入门 * XML Schema自身就是一个XML文件 但它的扩展名称为.xsd * 和XML文件一样 也要有一个根节点 Schema的根节点为Schema * 编写XML Schema约束文档后 通常需要把这个文件中声明的元素绑定到一个URI地址上 这个URI地址叫 * namespace名称空间 以后XML文件就可以通过这个URI(名称空间)引用绑定指定名称空间的元素 * 在<schema> 文件里面有w3c提供的属性和标签 约束xml文件 * 创建一个schema文件 * 步骤 * 1、看xml中有多少个元素 * <element> * */
相关文章推荐
- web day6 DOM&XML(JAXP的SAX解析XML,schema入门,dom4j&XPath的增删改查)
- day05 Schema约束,JAXP的SAX解析,DOM4J
- javaweb学习第七天:xml的schema约束
- javaseday37补充(list展开闭合 节点单独操作 注意获取节点时的s 增删行)
- Zookeeper入门之使用curator连接zookeeper并且进行节点的增删改查及ACL
- javaWeb系列之三(XML的简介与约束(DTD和Schema))
- Zookeeper入门之使用curator连接zookeeper并且进行节点的增删改查及ACL
- Schema约束快速入门
- jQueryday05补充(外内添加节点替换 节点操作)
- #笔记#圣思园 JavaWeb 第72讲——jQuery和DOM,查找、插入、删除、复制、替换、包裹节点
- 第8天(就业班) xml约束、Schema约束、Web开发入门、tomcat服务器、手动开发动态资源
- Zookeeper入门之使用curator连接zookeeper并且进行节点的增删改查及ACL
- J2EE进阶之schema约束,JAXP的SAX解析,DOM4J的解析,XPATH的支持 七
- JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
- Schema约束快速入门
- javase36补充(DOM节点的层次关系 操作节点 节点增删改查)
- Zookeeper入门编程之对zookeeper节点的增删改查
- SQL Server入门-增删改查约束建库建表
- Dom-对节点的增删改查,替换
- Schema约束快速入门