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

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

难度初级
时长 3小时 0分
学习人数
综合评分9.63
323人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 使用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 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是节点名称;attributes是节点属性;
    查看全部
  • 1.SAX解析XML的速度比DOM的块, 2.SAX的解析XML的解析器,需要重写startElement()方法通过qName获取节点名和characters()方法获取节点值 3.重写charaters()方法时,String(byte[] bytes,int offset,int length)的构造方法进行数组的传递 去除解析时多余空格 if(!value.trim().equals("")){ System.out.println(value); }
    查看全部
  • 解析xml元素(重写startElement()方法) 1. 调用DefaultHanlder 的startElement()方法 super.startElement(uri,localName,qName,attributes); 2. 开始解析book元素属性 if(qname.equals("book")){ //已知节点的属性名时 String value = attributes.getValue("id"); System.out.print("属性值:"+value); //未知节点的属性名时,获取属性名和属性值 for(int i=0;i<attributes.getLength();i++){ System.out.print(attributes.getQname(i)+attributes.getValue(i)); } }
    查看全部
  • 1.获取一个SAXParserFactory对象 SAXParserFactory factory = SAXParserFactory.newInstance(); 2.获取一个SAXParser对象 SAXParser parser = factory.newSAXParser(); 3.创建一个类SAXParserHandler extends DefaultHandler; 4.重写SAXParserHandler类中startDocument()和endDocument() startElement()、characters()和endElement() 5.创建SAXParserHandler对象 SAXParserHandler handler = new SAXParserHandler() 6.调用parse(url,handler实例)方法 parser.parse("book.xml",handler);
    查看全部
  • 1.解析子节点,book标签之间的所有内容都看成是子节点 NodeList childNodes=book.getChildNodes() 2.遍历childNodes获取每个节点的节点名和节点值 childNodes的getLength()方法返回节点的个数(空格与换行字符看成为一个文本节点,标签与结束标签看成一个元素节点) 3.通过NodeList的item()获取子节点属性 Node childnode=childNodes.item(i); 4.用Node类型的getNodeName()方法就可以获取节点名 String name=childnode.getNodeName(); 通过Node类的getNodeType()来区分text类型的node以及elment类型的node if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.获取了element类型节点的节点值 String value=childnode.getFirstChild().getNodeValue(); 或String value=childnode.getTextContent() 1.nodeValue的返回值为null,而且标签之间的文本被看做是该标签的子节点。因此用Node的getFirstChild()此时获取的子节点属性,再getNodeValue()获取该值,或者用getTextContent()直接获取节点值 2.getFirstChild()与getTextContent()区别 例如:<name><a>aa</a>老人与海</name>//该节点还存在其他子节点并且有节点值 则用getFirstChild().getNodeValue()时,返回:null,因为获取的子节点仍然是element类型的; 用Node的getTextContent(),返回:aa老人与海
    查看全部
  • 常用的节点类型表
    查看全部
  • 使用Dom解析xml文件的属性节点 一、未知节点属性的个数和属性名时: 1、通过document.getElementByTagName("book")获得所有book的节点集合 2、遍历集合 NodeList.getLength()获得集合长度 3、Node node = NodeList.item(index)获取其中的一个节点 4、通过NamedNodeMap attrs = node.getAttributes()获取所有属性集合 5、遍历集合 attrs.getLength()获得集合长度 6、通过atrrs.item(index)获取book节点的某一个属性 7、attr.getNodeName()获得属性名,attr.getNodeValue()获取属性值 二、已知book节点有且只有1个id属性 1、通过document.getElementByTagName("book")获得所有book的节点集合 2、遍历集合 NodeList.getLength()获得集合长度 3、element book=(element)NodeList.item(i);//强制转换为element类型 4、String attrValue = book.getAttribute("id");//获得属性值
    查看全部
  • 获取xml文件内容的四种解析方式:DOM SAX DOM4J JDOM DOM、SAX :java 官方方式,不需要下载jar包 DOM4J、JDOM :第三方,需要网上下载jar包 DOM使用步骤: 准备工作 //创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf = DocumnetBuilderFactory.newInstance(); //创建一个DocumentBuilder的对象 DocumentBuilder db = dbf.newDocumentBuilder(); //通过DocumentBuilder对象的parse方法加载xml文件到当前项目,注:import org.w3c.dom.Document; Document document = db.parse("*.xml");
    查看全部
  • 一、xml简介 1、.xml为扩展名 2、存储:树形结构 3、用于不同平台、不同设备间的数据共享通信 二、基本写法 1、<book id="1"></book> id为属性, <book><id>1</id></book> id为节点 2、xml文件开头要加上版本信息和编码方式<?xml version="1.0" encoding="UTF-8"?>
    查看全部
    0 采集 收起 来源:初次邂逅 XML

    2018-03-22

  • DOM4J 解析 xml 文件 1、创建一个 SAXReader 对象 SAXReader saxReader = new SAXReader(); 2、将 xml 文件加载到 SAXReader 中,并获取 document 对象 Document document = saxReader.read(fileName); 3、通过 getRootElement() 获取根节点元素 Element employeeRoot = document.getRootElement(); 4、通过 elementIterator() 获取子节点元素,返回 Iterator 返回迭代器 Iterator eles = eleRoot.elementIterator(); 5、通过 while 遍历迭代器 while(eles.hasNest()){ Element ele = (Element)eles.next();} 6、获取属性节点类似 JDOM 解析 List<Attribute> attrs = ele.attributes(); 7、获取元素节点名、值 ele.getName() ele.getStringValue()/ele.getText() 8、获取属性节点名、值 ele.getName() ele.geValue()
    查看全部
  • JUnit是Java提供的一种进行单元测试的自动化工具。测试方法可以写在任意类中的任意位置。使用JUnit可以没有main()入口进行测试,在方法之前标注@text注解。 DOM4J在灵活性和对复杂xml的支持上都要强于DOM DOM4J的应用范围非常的广,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c组织提供的一个官方解析方式,在一定程度上是有所应用的。 当XML文件比较大的时候,会发现DOM4J比较好用。 工程右键Build path--add library--JUnit单元测试--version:JUnit4
    查看全部
  • JDOM DOM4J
    查看全部
  • sax
    查看全部
  • DOM
    查看全部
  • DOM解析与SAX解析
    查看全部

举报

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

微信扫码,参与3人拼团

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

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