什么是XML?

前端之家收集整理的这篇文章主要介绍了什么是XML?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
XML 可扩展标记语言。 通常所说的XML,就是指XML数据解析,是将数据文档解析成不同的格式。因为不同平台(软件)在做数据传递或数据文档共享的时候,同一数据文档可能在不同平台的 显示格式要求不同,这就出现了相对中立的语言(XML),来表示数据,给二者做转化。 常用的XML解析方式及各自特征 一:DOM(dom4,这种是标准的方式) 文档对象模型 各步细节详细 加载整个文档[要做全局查找],才能开始解析 节点(节点都需要自己创建) Element元素节点 Text文本节点 Attr属性节点 二.simple XML 三:SAX Simple API for XML 占内存小,难理解 加载一部分,解析一部分 顺序读取文档,事件处理模型 1.文档开始 2.元素 3.文本 4.文本结束 5.元素结束 不停的 触发事件,直到文档结束。 解析方式详细说明 一.DOM(dom4,标准)-->DOM文档对象模型 (根节点)树形结构展开 1.创建document Document document =DocumentBuilderFactory //创建了一个工厂 .newInstance() //new 一个实例 .newDocumentBuilder() .newDocument();//创建了一个文档对象 //创建root节点 Element root = document.createElement("person-list"); for(Person p : list){ Element person = document.createElement("person");//创建 person子节点,加在根节点上 Attr attr= document.createAttribute("id");//创建属性节点 attr.setValue(String.valueOf(p.getId()));//属性id获取到值 person.setAttributeNode(attr);//person子节点 设置属性 //创建子节点的 子元素 Element name = document.createElement("name"); Element age = document.createElement("age"); person.appendChild(name); //子节点添加 子元素 person.appendChild(age); //标准)——创建文本节点,设置name值 Text text= document.createTextNode(p.getName()); name.appendChild(text); //简化 age.setTextContent(String.valueOf(p.getAge())); root.appendChild(person);//向root追加person子节点 } document.appendChild(root);//文档追加根root //把DOM写到XML文件中(需要借助格式转换工厂TransformerFactory) TransformerFactory factory =TransformerFactory.newInstance(); Transformer transformer=factory.newTransformer(); //源new DOMSource(document) //结果--输出 File file=new File("book.xml"); StreamResult result=new StreamResult(file); transformer.transform(new DOMSource(document),result);//将第一个参数[文件-源],转化到result 二.simple XML &&借助--Persister persister = new Persister();&& 1.读取文件 Persister persister = new Persister(); File file = new File("d:\\work.xml");//将 待读文件生成对象 try { //将 待读文件对象,转成Booklist.class格式,并将读取的内容 赋给Booklist list Booklist list=persister.read(Booklist.class,file); for (Book book : list.getList()) { System.out.println(book); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //读取文件 内的isbn,传给private String isdn; @Element(name="isbn",required=false) //此处name就是给 对象属性isdb取别名 private String isdn; 三.SAX(java内嵌的) Simple API for XML 顺序读取文档,事件处理模型 1.文档开始 startDocument() 2.元素开始 startElement(String arg0,String arg1,String arg2,Attributes arg3) 3.文本characters(char[] arg0,int arg1,int arg2) 4.文本结束 endDocument() 5.元素结束 endElement 加载文档时,遇到不同标签自动触发不同的事件,自动调用相应的5种处理方法方法的具体实现自己编写),直到文档结束。

猜你在找的XML相关文章