为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java眼中的XML---文件读取_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

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

JessicaJiang JAVA开发工程师
难度初级
时长 3小时 0分
  • xml的SAX解析并 将解析的内容及xml结构形式保存至Java对象中。 SAX解析: 1、获取一个SAXParserFactory的实例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通过factory获取SAXParser实例:SAXParser parser = factory.newSAXParser(); 3、创建SAXParserHandler对象:SAXParserHandler handler = new SAXParserHandler(); 4、将xml文件和解析方式handler加载到SAXParser实例:parser.parse("books.xml",handler); 解析的时候,是startElement-characters-endElement , characters解析完一个属性,就到endElement,然后又解析一个属性又到endElement,最后解析完全部属性,到endElement又到startElement开始下一个节点。 ArrayList保存对象 ArrayList<Book> BookList=new ArrayList<Book>(); BookList.add(book);book=null;后继续遍历 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException// qName是String类型节点名称;attributes是Attributes类型的实例,属性的意思;
    查看全部
  • SAX解析XML的速度比DOM的块, SAX的解析XML的解析器,需要重写startElement()开始解析的方法and endElemaent()方法 结束解析的方法and characters()方法 重写charaters()方法时,读取节点值(去除空的节点值) if(!value.trim().equals("")){ System.out.println(value); }
    查看全部
  • 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元素解析完。
    查看全部
  • JUnit是Java提供的一种进行单元测试的自动化工具。测试方法可以写在任意类中的任意位置。使用JUnit可以没有main()入口进行测试。 DOM4J在灵活性和对复杂xml的支持上都要强于DOM DOM4J的应用范围非常的广,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c组织提供的一个官方解析方式,在一定程度上是有所应用的。
    查看全部
  • 导入XML文件 导入Jar包 ---------------------------------------DOM4J解析节点属性--------------------------------------- //创建SAXReader的对象reader SAXReader reader = new SAXReader(); //通过reader的read加载person.xml文件 Document document = reader.read(new File("person.xml")); //通过document对象获取根节点persons Element persons = document.getRootElement(); //通过element对象的elementIterator方法获取迭代器 Iterator it = persons.getIterator(); //遍历迭代器,获取根节点中的信息(persons)适用于我们不知道节点的名称时 while(it.hasNext()){ Element person = (Element)it.next(); //获取person的属性名和属性值 List<Attribute> personAttrs = person.attributes(); //由于是List类型所以我们使用for each()循环进行遍历 for(Attribute attr : personAttrs){ System.out.println("节点名:" + attr.getName() + "--节点值:" + attr.getValue()); } } ---------------------------注意代码中import时导入的是dom4j下的--------------------------------
    查看全部
  • ---------------------------------关于JDOM使用过程中JAR包的引用--------------------------------- 我们的项目中直接配置build path指定的jar包如果是在我们PC的硬盘某个路径,那么在日后导出项目时候,项目中是没有jar包的。 我们只能在我们的项目下建立一个lib文件夹将所需jar包复制进去,再进行build path的配置即可。
    查看全部
  • // 防止乱码问题 InputStream is = new FileInputStream(fileName); InputStreamReader isr = new InputStreamReader(is,"UTF-8"); Document doc = saxb.build(isr);
    查看全部
  • 1、使用 foreach 遍历子元素节点时,获取索引使用 indexOf + 1 for(Element ele : eles) eles.indexOf(ele)+1 2、获取元素的属性节点 List<Attribute> attrs = ele.getAttributes(); 如果知道属性名称通过 getAttributeValue("属性名") 获取属性值
    查看全部
  • JDOM解析文件 1、创建一个 SAXBuilder 对象 SAXBuilder saxb = new SAXBuilder(); 2、创建输入流,将 xml 文件加载到输入流中(抛出 FileNotFoundException) InputStream is = new FileInputStream("xxx.xml"); 3、通过 SAXBuilder 的 build 方法将输入流加载到 saxb 中获取 dom 对象 (抛出 JDOMException IOException) Document doc = saxb.build(is); 或者直接将 xml 文件加载 Document doc = saxb.build("xxx.xml");
    查看全部
  • DOM4J是第三方提供的解析XML方法,需要jdom-2.0.5.jar包(最新) 步骤: 1、创建SAXBuilder对象 SAXBuilder saxBuilder = new SAXBuilder(); 2、创建一个输入流将XML加载到输入流中 InputStream in = new FileInputStream("src/person.xml"); 3、将xml加载到文件输入输入流中 Document document = saxBuilder.build(in); 4、根据Document对象获取xml中的根节点 Element rootEle = document.getRootElement(); 5、获取根节点下的子节点的list集合 List<Element> personList = rootEle.getChildren();
    查看全部
  • 四种解析方式对比: 1.基础方法:DOM,SAX(不需要导入jar包,java提供的) DOM平台无关的官方解析方式; SAX是java提供的基于事件驱动的解析方式 2.扩展方法:JDOM,DOM4J(在基础方法上扩展出来的,只有java中能够使用的解析方法 3.DOM:一次性加载形成DOM树;对内存性能要求较高 优点:形成了树结构,直观好理解,代码更容易编写; 解析过程中树结构保留在内存中,方便修改; 缺点:当xml文件较大时,对内存消耗比较大,容易影响解析性能并造成内存溢出 4.SAX:事件驱动,对内存耗费较小; 优点:适用于只需要处理xml中数据; 缺点:不易编码;很难同时访问同一个xml中的多处不同数据
    查看全部
  • xml的SAX解析并将解析的内容及xml结构形式保存至Java对象中。 SAX解析: 1、获取一个SAXParserFactory的实例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通过factory获取SAXParser实例:SAXParser parser = factory.newSAXParser(); 3、创建SAXParserHandler对象:SAXParserHandler handler = new SAXParserHandler(); 4、将xml文件和解析方式handler加载到SAXParser实例:parser.parse("books.xml",handler);
    查看全部
  • 重写charaters()方法时,读取节点值(去除空的节点值) if(!value.trim().equals("")){ System.out.println(value); }
    查看全部
  • 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);
    查看全部
  • AX解析的原理: 通过自己创建的Handler类,去逐个分析遇到的节点;Handler走到第一行的XML申明时,就开始分析节点了。 遇到bookstore节点就可以进行处理了,但是bookstore没有属性所以就不对其做更多的处理了。 遇到book节点时,book节点是拥有的id属性,会通过startElement来处理book节点的id属性 遇到book节点的子节点name节点,它没有必要处理name的属性,但name是个ElementNode类型的节点,它会获取name的节点名和节点值,执行完name节点后会通过endElement方法执行name节点的结束标签 SAX解析XML的步骤: 1、通过SAXParserFactory的静态newInstance()方法获取SAXParserFactory实例factory 2、通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 3、创建一个类继承DefaultHandler,重写其中的一些方法进行业务处理并创建这个类的实例handler
    查看全部

举报

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

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