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

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

难度初级
时长 3小时 0分
学习人数
综合评分9.63
323人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 常用节点类型
    查看全部
  • 1. DocumentBuilderFactory bdy = DocumentBuilderFactory.newInstance();<br><br> 2.DocumentBuilder bd = bdy.newDocumentBuilder();<br> parse方法解析xml文件,并加装到当前目录下<br> 3.Document document = bd.parse("book.xml");<br> 4.NodeList books = document.getElementsByTagName("book");<br> 获取节点<br> 5.Node book = books.item(i);<br> 获取节点的属性集合<br> 6.NamedNodeMap attrs = book.getAttributes();<br><br> 获取单个属性<br><br> Node attr = attrs.item(j);<br><br> 属性名:attr.getNodeName();<br><br> 属性值:attr.getNodeValue();<br><br> <br><br> 获取子节点集合<br><br> 7.NodeList childnode = book.getChildNodes();<br><br> 获取子节点<br> Node child = childnode.item(k);<br><br> 区分TEXT类型和ELEMENT_NODE类型; child.getNodeType == Node.ELEMENT_NODE; 子节点属性名:child.getNodeName();<br><br> 子节点的属性值:<br><br> 1.子节点下没有子节点,则用:<br><br> child.getFirstChild().getNodeValue();<br> 2.子节点下还有其他子节点,获取子节点的值和它的子节点的值,则用:<br> child.getTextContent();
    查看全部
  • 在java程序中,读取xml文件的过程也称为解析xml文件
    查看全部
  • SAX方式解析xml步骤
    查看全部
  • 节点类型
    查看全部
  • 已知属性名称
    查看全部
  • 导入xml
    查看全部
  • 解析文件节点以及子节点的值 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解析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");
    查看全部
  • 获取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");
    查看全部
  • 用DOM方式解析xml:①通过DocumentBuilderFactory对象的newInstance()方法获取DocumentBuilderFactory对象的实例 ②通过DocumentBuilderFactory实例对象的newDocumentBuilder()方法获取DocumentBuilder实例 ③通过DocumentBuilder实例的parse()方法解析XML文件,返回的是Document对象 代码演示: DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); Document document=db.parse(”book.xml”);
    查看全部
  • *********<br> 解析子节点的信息<br> Iterator itt = book.elementIterator();<br> while(itt.hasNext()){<br> Element bookchild = (Element)itt.next();<br> bookchild.getName();<br> bookchild.getStringValue();<br> }
    查看全部
  • 两种方法可以解决乱码问题: 1.修改xml第一行的encoding属性 2.在代码中处理,应用IO流知识 //创建输入流,将XML文件加载到输入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包装流InputStreamReader进行读取编码的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");
    查看全部
  • 使用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.JUnit:Java提供的单元测试;@Test注解;采用JUnit不需要程序入口main方法 工程右键build path --Add library--JUnit单元测试 --version:JUnit4 2.性能测试结果:几kB的xml文件;建议使用DOM4J解析 DOM-33ms SAX-6ms JDOM-69ms DOM4J-45ms 较大的xml文件DOM有可能溢出 DOM4J的性能强、应用范围非常的广,建议使用DOM4J
    查看全部

举报

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

微信扫码,参与3人拼团

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

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