当前位置: 首页 > news >正文

免费建小程序网站百度广告官网

免费建小程序网站,百度广告官网,旅游网站建设方,生猪价格网为什么80%的码农都做不了架构师#xff1f; 转载自#xff1a;http://www.cnblogs.com/shenliang123/archive/2012/05/11/2495252.html 使用eclipse需要手动导入crimson.jar包 org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单#xff0c… 为什么80%的码农都做不了架构师    转载自http://www.cnblogs.com/shenliang123/archive/2012/05/11/2495252.html 使用eclipse需要手动导入crimson.jar包 org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单就是将XML看做是一颗树DOM就是对这颗树的一个数据结构的描述但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API: 1.解析器工厂类DocumentBuilderFactory 创建的方法DocumentBuilderFactory dbf DocumentBuilderFactory.newInstance(); 2.解析器DocumentBuilder 创建方法通过解析器工厂类来获得 DocumentBuilder db dbf.newDocumentBuilder(); 3.文档树模型Document 创建方法a.通过xml文档 Document doc db.parse(bean.xml);  b.将需要解析的xml文档转化为输入流 InputStream is new FileInputStream(bean.xml);  Document doc db.parse(is);  Document对象代表了一个XML文档的模型树所有的其他Node都以一定的顺序包含在Document对象之内排列成一个树状结构以后对XML文档的所有操作都与解析器无关 直接在这个Document对象上进行操作即可  包含的方法 4.节点列表类NodeList NodeList代表了一个包含一个或者多个Node的列表根据操作可以将其简化的看做为数组 5.节点类Node Node对象是DOM中最基本的对象代表了文档树中的抽象节点。但在实际使用中很少会直接使用Node对象而是使用Node对象的子对象Element,Attr,Text等 6.元素类Element 是Node类最主要的子对象在元素中可以包含属性因而Element中有存取其属性的方法 7.属性类Attr 代表某个元素的属性虽然Attr继承自Node接口但因为Attr是包含在Element中的但并不能将其看做是Element的子对象因为Attr并不是DOM树的一部分 基本的知识就到此结束更加具体的大家可以参阅JDK API文档   实战 1.使用DOM来遍历XML文档中的全部内容并且插入元素 school.xml文档 ?xml version 1.0 encoding utf-8? SchoolStudentName沈浪/NameNum1006010022/NumClasses信管2/ClassesAddress浙江杭州3/AddressTel123456/Tel/StudentStudentName沈1/NameNum1006010033/NumClasses信管1/ClassesAddress浙江杭州4/AddressTel234567/Tel/StudentStudentName沈2/NameNum1006010044/NumClasses生工2/ClassesAddress浙江杭州1/AddressTel345678/Tel/StudentStudentName沈3/NameNum1006010055/NumClasses电子2/ClassesAddress浙江杭州2/AddressTel456789/Tel/Student /School DomDemo.java package xidian.sl.dom;import java.io.FileOutputStream;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory;import org.apache.crimson.tree.XmlDocument; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList;public class DomDemo {/*** 遍历xml文档* */public static void queryXml(){try{//得到DOM解析器的工厂实例DocumentBuilderFactory dbFactory DocumentBuilderFactory.newInstance();//从DOM工厂中获得DOM解析器DocumentBuilder dbBuilder dbFactory.newDocumentBuilder();//把要解析的xml文档读入DOM解析器Document doc dbBuilder.parse(src/xidian/sl/dom/school.xml);System.out.println(处理该文档的DomImplementation对象 doc.getImplementation());//得到文档名称为Student的元素的节点列表NodeList nList doc.getElementsByTagName(Student);//遍历该集合显示结合中的元素及其子元素的名字for(int i 0; i nList.getLength() ; i ){Element node (Element)nList.item(i);System.out.println(Name: node.getElementsByTagName(Name).item(0).getFirstChild().getNodeValue());System.out.println(Num: node.getElementsByTagName(Num).item(0).getFirstChild().getNodeValue());System.out.println(Classes: node.getElementsByTagName(Classes).item(0).getFirstChild().getNodeValue());System.out.println(Address: node.getElementsByTagName(Address).item(0).getFirstChild().getNodeValue());System.out.println(Tel: node.getElementsByTagName(Tel).item(0).getFirstChild().getNodeValue());}}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}/*** 向已存在的xml文件中插入元素* */public static void insertXml(){Element school null;Element student null;Element name null;Element num null;Element classes null;Element address null;Element tel null;try{//得到DOM解析器的工厂实例DocumentBuilderFactory dbFactory DocumentBuilderFactory.newInstance();//从DOM工厂中获得DOM解析器DocumentBuilder dbBuilder dbFactory.newDocumentBuilder();//把要解析的xml文档读入DOM解析器Document doc dbBuilder.parse(src/xidian/sl/dom/school.xml);//得到文档名称为Student的元素的节点列表NodeList nList doc.getElementsByTagName(School);school (Element)nList.item(0);//创建名称为Student的元素student doc.createElement(Student);//设置元素Student的属性值为231student.setAttribute(examId, 23);//创建名称为Name的元素name doc.createElement(Name);//创建名称为 香香 的文本节点并作为子节点添加到name元素中name.appendChild(doc.createTextNode(香香));//将name子元素添加到student中student.appendChild(name);/*** 下面的元素依次加入即可* */num doc.createElement(Num);num.appendChild(doc.createTextNode(1006010066));student.appendChild(num);classes doc.createElement(Classes);classes.appendChild(doc.createTextNode(眼视光5));student.appendChild(classes);address doc.createElement(Address);address.appendChild(doc.createTextNode(浙江温州));student.appendChild(address);tel doc.createElement(Tel);tel.appendChild(doc.createTextNode(123890));student.appendChild(tel);//将student作为子元素添加到树的根节点schoolschool.appendChild(student);//将内存中的文档通过文件流生成insertSchool.xml,XmlDocument位于crison.jar下((XmlDocument)doc).write(new FileOutputStream(src/xidian/sl/dom/insertSchool.xml));System.out.println(成功);}catch (Exception e) {// TODO: handle exceptione.printStackTrace();} }public static void main(String[] args){//读取DomDemo.queryXml();//插入DomDemo.insertXml();} }   运行后结果   然后到目录下查看生成的xml文件 打开查看内容 上面添加元素后输出的文件与之前的文件不是同一个文件如果需要输出到原文件中那么只要将路径改为原文间路径即可src/xidian/sl/dom/school.xml  2.创建XML过程与插入过程相似就是Document需要创建 package xidian.sl.dom;import java.io.FileOutputStream;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory;import org.apache.crimson.tree.XmlDocument; import org.w3c.dom.Document; import org.w3c.dom.Element;public class CreateNewDom {/*** 创建xml文档* */public static void createDom(){Document doc;Element school,student;Element name null;Element num null;Element classes null;Element address null;Element tel null;try{//得到DOM解析器的工厂实例DocumentBuilderFactory dbFactory DocumentBuilderFactory.newInstance();//从DOM工厂中获得DOM解析器DocumentBuilder dbBuilder dbFactory.newDocumentBuilder();//创建文档树模型对象doc dbBuilder.newDocument();if(doc ! null){//创建school元素school doc.createElement(School);//创建student元素student doc.createElement(Student);//设置元素Student的属性值为231student.setAttribute(examId, 23);//创建名称为Name的元素name doc.createElement(Name);//创建名称为 香香 的文本节点并作为子节点添加到name元素中name.appendChild(doc.createTextNode(香香));//将name子元素添加到student中student.appendChild(name);/*** 下面的元素依次加入即可* */num doc.createElement(Num);num.appendChild(doc.createTextNode(1006010066));student.appendChild(num);classes doc.createElement(Classes);classes.appendChild(doc.createTextNode(眼视光5));student.appendChild(classes);address doc.createElement(Address);address.appendChild(doc.createTextNode(浙江温州));student.appendChild(address);tel doc.createElement(Tel);tel.appendChild(doc.createTextNode(123890));student.appendChild(tel);//将student作为子元素添加到树的根节点schoolschool.appendChild(student);//添加到文档树中doc.appendChild(school);//将内存中的文档通过文件流生成insertSchool.xml,XmlDocument位于crison.jar下((XmlDocument)doc).write(new FileOutputStream(src/xidian/sl/dom/createSchool.xml));System.out.println(创建成功);}}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}public static void main(String[] args) {CreateNewDom.createDom();} } 运行结果 DOM的操作应该还是非常简单明了的掌握了没哦。         转载于:https://my.oschina.net/zjcx/blog/679549
http://www.pierceye.com/news/58148/

相关文章:

  • 网站建设费合同wordpress算术验证码
  • 我的世界查找建筑网站做爰全过程的视频网站
  • 建立第一个网站ps做网站的时候分辨率是
  • 如何增强网站的安全性仿门户网站多功能js相册画廊源码
  • 淮安网站建设公司怎样在百度建立自己的网站
  • 南通宏仁建设工程有限公司招聘网站重庆市建设工程信息网官网安全监督管理平台
  • 外贸电子商务网站试析媒体网站品牌建设
  • 360网站图标怎么做的无锡网站建设有限公司
  • 建网站需要什么软件常州做网站推广
  • 公司网站建设申请单怎么给网站做链接屏蔽
  • 小说网站开发数据库美术馆网站的建设流程
  • 百合网网站建设与策划龙岗网站建设公司电话
  • 我的网站域名网站建设公司响应式网站模板
  • 四川冠辰网站建设丹阳市网站制作
  • 免费的奖励网站有哪些建设网站意义
  • 杭州做网站的集团网站域名过户查询
  • 怎么做网站跳转链接WordPress论坛小程序
  • c 网站开发架构租车公司网站模板
  • 四平网站建设怎么选济南企业网站制作
  • 广州购物商城网站网站优化建设上海
  • 建设网站是不是必须要服务器wordpress 随机文章插件
  • 怎么在电脑上做网站2014网站seo
  • 网站开发中制作视频播放器手机靓号网站制作
  • 潍坊住房和城乡建设厅网站电话周口网站建设专家
  • 东莞微信网站制作深圳公司免费网站建设怎么样
  • 建设银行网站的目的wordpress 伪静态 主题失效
  • 做外贸的网站怎么建立申请收费网站空间
  • 哪个cms方便快速建站卫辉市住房和城市建设局网站
  • 公司做网站那家好中国建设银行遵义市分行网站
  • 做网站做网站网站添加备案号