为了账号安全,请及时绑定邮箱和手机立即绑定

Java眼中的XML---文件读取

难度初级
时长 3小时 0分
学习人数
综合评分9.63
323人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 使用Dom解析xml文件的属性节点。 在不知道节点属性的个数和属性名时: 1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合 2、通过NodeList.getLength()获得集合长度,遍历集合 3、Node node = NodeList.item(index)获得里面的节点 4、通过NamedNodeMap attrs = node.getAttributes()获取所有属性集合 5、通过attrs.getLength()遍历集合,Node attr = atrrs.item(index) 6、attr.getNodeName()获得属性名,attr.getNodeValue()获取属性值 前提已经知道book节点有且只有1个id属性,将book节点进行强制类型转换,转换成element类型。 1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合 2、通过NodeList.getLength()获得集合长度,遍历集合 3、element book=(element)bookList.item(i);//强制转换为element类型 4、string attrValue = book.getAttribute("id");
    查看全部
  • 个人观点,希望说能对其他后来的学员能够有点帮助吧。怎么说呢,希望大家不要喷我。当然还是给所有的初学者一些建议 我觉得初学者是怎样的一个群体? 1.不会自己查api(更甚者不知道什么是api) 2.不了解java编程的基本概念 3.不会使用eclipse提供的基本快捷方式 4.没有一定的基础,没有对java的基本认知 5.对java提供的类和方法没有基本的熟悉(用过,试过) 6.没有经历过任何项目,没有参与或者见识过比较高级的开发模式,甚至不知道有这个概念 我对初学者的建议: 1.起码弄清getset吧,笔记里面竟然还有这个,我觉得很尴尬,你完全不懂他的意思???最基础的还要备注? 2.从前面的java基础开始学习,不只是学习,还要理解,实践,如果你以后要靠这个吃饭 3.推荐之后可以去看百度传课的《javaSe核心技术》:对java类更深入的应用 4.书籍推荐《JAVA编程思想》。有一定基础的可以去看 5.接触项目,学习框架 6.查缺补漏 我说的话不中听,但是实用,希望靠JAVA来生活的可以看看
    查看全部
  • 获取xml文件内容的 四种解析方式:DOM SAX DOM4J JDOM DOM、SAX :java 官方方式,不需要下载jar包 DOM4J、JDOM :第三方,需要网上下载jar包 DOM使用步骤: 准备工作 1、创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf = DocumnetBuilderFactory.instance(); 2、创建一个DocumentBuilder的对象 DocumentBuilder db = dbf.newDocumentBuilder(); 3、通过DocumentBuilder对象的parse方法加载xml文件到当前项目 Document document = db.parse("*.xml");
    查看全部
  • 表现:以.xml为文件扩展名的文件 存储:树形结构 每个节点需要一个开始标签<标签名>和结束标签</标签名>。 节点名称区分大小写。 节点的属性 1、可以写在节点名称标签开始的后半部分<标签名 属性="属性值">。 2、可以作为节点的值写在两个标签中间。<标签名>节点值</标签名>。(节点值不用双引号) 可以不断拓展子节点来描述父节点包含的内容。 xml在写正文前,要加一个声明:<?xml version="1.0" encoding="UTF-8"?>声明版本与编码。 xml用于存储集成信息,能用相同的xml文件将不同的东西联系起来。
    查看全部
    8 采集 收起 来源:初次邂逅 XML

    2018-03-22

  • 记事本写好后,不是直接保存,应该点击另存为,下方会有选择编码方式的选项,点击utf-8保存就好了,再拖进去就没有问题了,直接保存的话默认是ansi编码,eclipse默认的是gbk,会乱码。
    查看全部
  • 不同系统间通信、不同软件间通信、不同平台间通信使用xml文件 XML文件用来存储数据和传输数据 XML存储结构为树状 xml声明:<?xml version="1.0"encoding="utf-8"? > XML作用: 不同应用程序之间通信、传输信息(订票程序和支付程序) 不同系统间的通信(例:Windows系统和IOS系统) 不同平台间的数据共享(手机端和PC端) 不同APP之间的通信,不同的平台间的通信,不同平台间的数据共享。XML文件主要用于存储以及传输信息。 通过xml文件存储小型数据。
    查看全部
    7 采集 收起 来源:初次邂逅 XML

    2018-03-22

  • 解析文件节点以及子节点的值 1.先获取子节点,Node下有方法getChildNodes()来获取某个节点的子节点的集合,返回NodeList类型. NodeList childNodes=book.getChildNodes()//包含book节点所有的子节点,两个标签之间的所有内容都看成是子节点. 2.通过childNodes的getLength()方法返回字点的个数(空格与换行字符看成为一个文本节点,标签与结束标签看成一个元素节点) 3.通过NodeList的item(i)获取指定位置子节点的名称返回Node类型.再用Node类型的getNodeName()方法就可以获取节点名 Node childnode=childNodes.item(i); String name=childnode.getNodeName(); 可以通过Node类的getNodeType()来区分文本类型的node以及元素类型的node,看当前Node类型是否与Node."节点类型英文全称"相同. if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.不能直接通过Node的getNodeValue()来获取节点的值,因为元素节点的nodeValue的返回值为null而且标签之间的文本被看做是该标签的子节点.所以要用Node的getFirstChild()此时获取的子节点为文本节点,Text节点类型的nodeValue返回值为节点内容,再getNodeValue()。 或者直接用Node的getTextContent()方法直接获取节点值。 如果该Node节点还存在其他子节点并且有节点值<name><a>广州大学</a>华软学院</name>,那么用getFirstChild().getNodeValue()一样是null,因为获取的子节点仍然是element类型的 如果用Node的getTextContent(),一样会把<a>元素节点当成是Content输出。 结果为广州大学华软学院.
    查看全部
  • 基础方法:DOM(平台无关的官方解析方式)、SAX(基于事件驱动的解析方式) 扩展方法:JDOM、DOM4J(在基础的方法上扩展出的,只有在java中能够使用的解析方法) DOM:一次性将整个xml文件加载到内存中,形成DOM树 优点:形成了树结构,直观好理解,代码更容易编写 解析过程中树结构保留在内存中,方便修改 缺点:当xml文件较大时,对内存消耗比较大,容易影响解析性能并造成内存溢出 SAX:逐条语句判断解析 优点:采用事件驱动模式,对内存消耗比较小 适用于只需要处理xml中数据时 缺点:不易编码 很难同时访问同一个xml中的多处不同数据 JDOM:仅使用具体类而不使用接口 API大量使用了Collections类 DOM4J:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能 DOM4J使用接口和抽象基本类方法,是一个优秀的Java XML API 具有性能优异、灵活性好、功能强大和极端易使用的特点 是一个开放源代码的软件
    查看全部
  • SAX方式解析xml步骤 1.通过SAXParserFactory的静态newInstance()方法获取一个SAXParserFactory的对象。 2.通过SAXParserFactory对象的newSAXParser()方法返回一个SAXParser类的对象。 3.创建一个类继承DefaultHandler,重写其中的一些方法并创建类的实例. 4.通过SAXParser类的Parse(Stringname,df)方法解析xml文件,参数Stringname为路径名,df为继承于DefaultHandler类的实例化对象,不需要定义变量存储返回的类型. SAX是按节点顺序进行解析,遇到xml的声明即开始解析,遇到最后一个节点的尾节点便结束解析,需要用户自己定义一个类继承于DefaultHandler类来解析,遇到开始标签节点便通过startElement开始解析节点,遇到结束标签节点便通过endElement结束解析,再遇到开始节点继续通过startElement解析,一直循环直到xml文件最后的结束标签节点. 5.在继承于DefaultHandler这个类中需要重写父类的startElement()和endElement()方法,来进行开始节点与结束节点的解析,再重写startDocument()方法与endDocument()方法来标识解析的开始与结束.
    查看全部
  • SAX解析XML的速度比DOM的块, SAX的解析XML的解析器,需要重写startElement()开始解析的方法and endElemaent()方法 结束解析的方法and characters()方法 重写charaters()方法时,String(byte[] bytes,int offset,int length)的构造方法进行数组的传递 再去除解析时多余空格 if(!value.trim().equals("")){ System.out.println(value); } 使用 SAX 解析 XML 文件的节点名和节点间文本 startElement方法——String qName(第三个参数):节点名 startElement方法——Attributes attributes(第四个参数):节点名的属性操作 characters方法——char[] ch(第一个参数):xml整个文本内容,所以需截取想要的内容 如图代码+以下代码 public void endElement(String uri, String localName, String qName) throws SAXException { //调用DefaultHandler类的endElement方法 super.endElement(uri, localName, qName); //判断是否针对一本书已经遍历结束 if (qName.equals("book")) { System.out.println("======================结束遍历某一本书的内容================="); } } public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); value = new String(ch, start, length); if (!value.trim().equals("")) { System.out.println("节点值是:" + value); } }
    查看全部
  • JUnit是Java提供的一种进行单元测试的自动化工具。测试方法可以写在任意类中的任意位置。使用JUnit可以没有main()入口进行测试。 DOM4J在灵活性和对复杂xml的支持上都要强于DOM DOM4J的应用范围非常的广,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c组织提供的一个官方解析方式,在一定程度上是有所应用的。 当XML文件比较大的时候,会发现DOM4J比较好用 1.JUnit:Java提供的单元测试;@Test注解;采用JUnit不需要程序入口main方法 2.性能测试结果:几kB的xml文件;建议使用DOM4J解析 DOM-33ms SAX-6ms JDOM-69ms DOM4J-45ms 工程右键build path --Add library--JUnit单元测试 --version:JUnit4 DOM:33,SAX:6 JDOM:69;DOM4J:45 DOM 有可能溢出 多使用DOM4J
    查看全部
  • JDOM解析乱码处理 1.修改xml第一行的encoding属性 2.在代码中处理,应用IO流知识 //创建输入流,将XML文件加载到输入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包装流InputStreamReader进行读取编码的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");
    查看全部
  • JDOM解析文件 1.创建一个SAXBuilder对象 SAXBuilder saxbuilder=newSAXBuilder(); 2.创建输入流,将xml文件加载到输入流中(抛出FileNotFoundException) Inputstream in=new FileInputstream("xxx.xml"); 3.通过SAXBuilder的Build方法将输入流加载到saxb中获取dom对象 Document doc = saxbuilder.build(in); 4.通过document对象获取xml文件的根结点 Element rootElement =doc.getRootElement(); 5.获取根结点下的子节点的List集合
    查看全部
  • 两种DOM解析xml文件 都需要 -> 通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合 -> Node node = NodeList.item(index)获得里面的节点 (1).知道节点个数和属性名 -> Element.getAttribute("节点名"); (2).不知道节点个数和属性名 -> 1、通过NodeList.getLength()获得集合长度,遍历集合 2、通过NamedNodeMap attrs = node.getAttributes()获取所有属性集合 3、通过attrs.getLength()遍历集合,Node attr = atrrs.item(index) 4、attr.getNodeName()获得属性名,attr.getNodeValue()获取属性值
    查看全部
  • handler重写: 获取xml解析开始、结束 startDocument() endDocument() 获取xml的标签 开始:startElement(String uri, String localName, String qName,Attributes attributes) 获取属性名:attributes.getQName(i);获取属性值:attributes.getValue(i) 结束:endElement(String uri, String localName, String qName) 获取节点值 characters(char[] ch, int start, int length) String value = new String(ch, start, length); if(qName.equals("book")) 会一直将book元素解析完。
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程是 Java 的中级课程,需要各位小伙伴们熟悉 Java 面向对象的思想,并能熟练掌握 Java I/O 的相关知识。对如何将内容写入 XML 文件感兴趣的小伙伴们,可以进入《Java 眼中的 XML --- 文件写入》一探究竟
老师告诉你能学到什么?
1、XML 的基本概念 2、XML 在实际项目开发中的的用途和优点 3、如何通过 Java 解析 XML

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!