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

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

难度初级
时长 3小时 0分
学习人数
综合评分9.63
323人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • gettextcontent方法
    查看全部
  • 当使用getnodevalue时候返回值是null需要得到字节点getchildnode在取值
    查看全部
  • 用DOM方式解析xml:①通过DocumentBuilderFactory对象的newInstance()方法获取DocumentBuilderFactory对象的实例 ②通过DocumentBuilderFactory实例对象的newDocumentBuilder()方法获取DocumentBuilder实例 ③通过DocumentBuilder实例的parse()方法解析XML文件,返回的是Document对象
    查看全部
  • java中解析xml文件内容的方式
    查看全部
  • @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if("book".equals(qName)) { bookList.add(book); book = null; System.out.println("-----第" + bookIndex + "本书遍历结束-----\n\n"); } else if("name".equals(qName)) { book.setName(value); } else if("price".equals(qName)) { book.setPrice(Integer.parseInt(value)); } else if("author".equals(qName)) { book.setAuthor(value); } } @Override public void startDocument() throws SAXException { super.startDocument(); System.out.println("开始SAX解析"); } @Override public void endDocument() throws SAXException { super.endDocument(); System.out.println("SAX解析结束"); } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); value = new String(ch, start, length); if(!"".equals(value.trim())) { System.out.println("---节点值是:" + value); } } }
    查看全部
  • @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); if("book".equals(qName)) { /*已知book元素的属性的名称的情况下,可用此方法 String value = attributes.getValue("id"); System.out.println("book的属性值是:" + value); */ bookIndex++; book = new Book(); System.out.println("=====开始遍历第" + bookIndex + "本书====="); //不知book元素的属性名的情况下,使用以下方法 int num = attributes.getLength(); for(int i=0; i<num; i++) { System.out.print("第"+(i+1)+"个属性名是:"+attributes.getQName(i)); System.out.println("---属性值是:" + attributes.getValue(i)); } } else if(!"bookstore".equals(qName)) { System.out.print("节点名是:" + qName); } }
    查看全部
  • package com.imooc.sax; import java.util.ArrayList; import java.util.List; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAXParserHandler extends DefaultHandler { int bookIndex = 0; String value = null; Book book = null; List<Book> bookList = new ArrayList<Book>(); public List<Book> getBookList() { return bookList; }
    查看全部
  • package com.imooc.sax; public class Book { private String id; private String name; private int price; private String author; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } @Override public String toString() { return "id:" + id + "--name:" + name + "--price:" + price + "--author:" + author; } }
    查看全部
  • package com.imooc.sax; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAXTest { public static void main(String[] args) { SAXParserFactory factory = SAXParserFactory.newInstance(); try { SAXParser parser = factory.newSAXParser(); SAXParserHandler handler = new SAXParserHandler(); parser.parse("src\\bookstore.xml", handler); System.out.println("\n一共遍历了" + handler.getBookList().size() + "本书"); for(Book b : handler.getBookList()) { System.out.println(b); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
    查看全部
  • System.out.println("第"+(i+1)+"本书共有"+attrs.getLength()+"个属性"); for(int j=0; j<attrs.getLength(); j++) { Node attr = attrs.item(j); System.out.println("属性名" + attr.getNodeName()); System.out.println("属性值" + attr.getNodeValue()); } //如果知道属性名,可以使用Element对象 Element _book = (Element)booklist.item(i); String attrValue = _book.getAttribute("id"); System.out.println("使用Element对象得到的属性值--" + attrValue); System.out.println("==================\n\n"); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
    查看全部
  • package com.imooc.test; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class DOMTest { public static void main(String[] args) { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse("src\\bookstore.xml"); NodeList booklist = document.getElementsByTagName("book"); System.out.println("一共有" + booklist.getLength() + "本书"); for(int i=0; i<booklist.getLength(); i++) { System.out.println("=================="); Node book = booklist.item(i); NamedNodeMap attrs = book.getAttributes(); System.out.println("第"+(i+1)+"本书共有"+attrs.getLength()+"个属性");
    查看全部
  • trim.() 去掉左右两边的空字符串
    查看全部
  • DOM 生成XML文件 DocumentBuilderFactory.newInstance() newDocumentBuilder();没有空格 .parse(file)----document document.setXmlStandalone(true) 不需要dtd,schema的格式说明 document.createElement("");----Element对象 document.createTextNode("文本内容")---element.appendChild(textNode)添加文本内容 element.setTextContent("文本内容")等同于上面两步 element.appendChild(element)..... 最后还要,document.appendChild(element); 创建转化对象 TransformerFactory tff = TransformerFactory.newInstance(); tf = tff.newTransformer(); tf.setOutputProperty(OutputKeys.INDENT,"yes");是否换行,yes是 tf.transform(new DOMSource(document),new StreamResult(new File("book1.xml")));
    查看全部
  • //需要导入相应的包,jdom2包和dom4j包 JDOM解析 new SAXBuilder() .build(fileInputStream)------生成document,jdom2下的 document.getRootElement() jdom2包下,生成Element对象 getChildren()获得的是ELEMENT的list集合; Element.getAttributes()获得属性集合Attribute的List, element.getName,getValue节点名,节点值。 attribute.getName,getValue()属性名,属性值 DOM4J解析 new SAXReader(); .read(file)----生成document对象,dom4j下的 document.getRootElement() root.elementIterator();dom4j下的 it.hasNext() (Element)it.Next();强制转化 element.attributes()属性集合,getName,getValue element.getName()节点名,getText或者getStringValue,节点值
    查看全部
  • DOM解析 DocumentBuilderFactory.newInstance() newDocumentBuilder(); db.parse("book.xml"); document.getElementsByTagName("book");--nodelist,booklist fore Node book= booklist.item(i) list-- book.getAttributes()-----attr.getNodeName() attr.getNodeValue() childs = book.getChildNodes(); child = childs.item(i)---if(child.nodeType==Node.ELEMENT_NODE) --child.getNodeName() child.getTextContent(); SAX解析 SAXParseFactory.newInstance(); newSAXParse(); .parse(File,SAXHandler)---SAXHandler extends DefaultHandler; handler 继承五个方法 startDocument()开始解析--<?xml version="1.0" encoding=utf-8?> startElement(....) 解析节点和属性,qName节点名,attribute属性名 从一个节点开始解析。 characters(ch,start,length)解析节点值, value=new String(ch,start,length) !value.trim().equals(""),空文本不显示。 endElement(...)根节点下的节点解析结束 endDocument() 结束解析。</...>
    查看全部

举报

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

微信扫码,参与3人拼团

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

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