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

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

难度初级
时长 3小时 0分
学习人数
综合评分9.63
323人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • D_r
    解析子节点的信息 Iterator itt = book.elementIterator(); while(itt.hasNext()){ Element bookchild = (Element)itt.next(); bookchild.getName(); bookchild.getStringValue(); } 获取子节点的节点值时用getStringValue()的方法。
    查看全部
  • D_r
    DOM4J 解析 xml 文件 1、创建一个 SAXReader 对象 SAXReader saxReader = new SAXReader(); 2、将 xml 文件加载到 SAXReader 中,并获取 document 对象 Document document = saxReader.read(new file("src/res/book.xml")); 3、通过 getRootElement() 获取根节点元素 Element employeeRoot = document.getRootElement(); 4、通过 elementIterator() 获取子节点元素,返回 Iterator 返回迭代器 Iterator eles = employeeRoot.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()
    查看全部
  • D_r
    JDOM解析乱码处理 1.修改xml第一行的encoding属性 2.在代码中处理,应用IO流知识 //创建输入流,将XML文件加载到输入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包装流InputStreamReader进行读取编码的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");
    查看全部
  • D_r
    在jDOM中无论是什么样的节点他都有一个getChildren的方法 JDOM 解析 获取节点名、值:getName() getValue() 获取子节点:getChildren() 返回 List<Element> 获取属性节点:getAttributes() 返回 List<Attribute> DOM 解析 获取节点名、值:getNodeName() getNodeValue() getTextContent() 获取子节点:getChildNodes() 返回 NodeList 获取属性节点:getAttributes() 返回 NamedNodeMap
    查看全部
  • D_r
    JDOM解析节点属性 1、使用 foreach 遍历子元素节点时,获取第几本使用 indexOf + 1(原因:indexOf从0开始) for(Element book : booklist){ booklist.indexOf(book)+1; } 2、JDOM中的Element得到的Attribute的getValue都是有实际值的文本,getValue不保存空格换行等组成的文本
    查看全部
  • D_r
    JDOM解析文件 需要jdom-2.0.5.jar包(最新) 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集合 List<Element> personList = rootEle.getChildren();
    查看全部
  • D_r
    解析的时候,是startElement-characters-endElement , characters解析完一个属性,就到endElement,然后又解析一个属性又到endElement,最后解析完全部属性,到endElement又到startElement开始下一个节点。 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类型的实例,属性的意思;
    查看全部
  • D_r
    SAX解析XML的速度比DOM的块, SAX的解析XML的解析器,需要重写startElement()开始解析的方法and endElemaent()方法 结束解析的方法and characters()方法 重写charaters()方法时,读取节点值(去除空的节点值) if(!value.trim().equals("")){ System.out.println(value); } 每次遇到标签调用characters方法的时候它的字符数组ch实际上就是我们整个的book xml文档的内容。
    查看全部
  • D_r
    handler开始解析 走到每一个节点都调用startElement(); 情况1. 已知节点的属性名和属性个数 -> attributes。getValue("属性名"); 情况2. 不知道节点的属性名和属性个数 -> 遍历到attributes.getLength(); -> 属性名 : attributes.getQname() 属性值: attributes.getValue("第几个属性"); 每走到一个开始标签他都会调用一个startElement方法。相同,每遍历一个结束标签他也会调用一个endElement方法。
    查看全部
  • D_r
    DOM解析原理: 先把XML文件整个加载到内存中,在逐个解析。 SAX解析原理: 通过自己创建的Handler类,去逐个分析遇到的每一个节点;(节点分析是从最外层向里层逐个开始) startElement方法用来遍历xml文件的开始标签。endElement方法用来遍历xml文件的结束标签。startDocument方法用来标识解析开始。endDocument用来标识解析结束。 SAX解析xml步骤 1.通过SAXParseFactory的静态newInstance()方法获取SAXParserFactory实例factory 2.通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 3.创建一个类继承DefaultHandle,重写方法进行业务处理并创建这个类的实例handle
    查看全部
  • D_r
    常用节点类型。 Element(NodeType:1;NodeName:元素名称;NodeValue:null) Attr(NodeType:2;NodeName:属性名称;NodeValue:属性值) Text(NodeType:3;NodeName:#text;NodeValue:节点内容) 1.getFirstChild.getNodeValue():该节点下第一子节点的值 2.getTextContent() :该节点下包括后代节点里的文本内容 NodeList childNodes = book.getChildNodes();获取子节点 空白和换行符也算作一个子节点~~~ ChildNodes.item(i).getFirstChild().getNOdeValue()和 ChildNodes.item(i).getTextContent()的区别 子节点中还包含其他子节点时,后者可以把子节点的值都显示出来。 getTextContent()获取节点值和所有子节点. getNodeType().............有text,element,attr三个 而Element如果要获取值,必须读取它的子节点,<name>content</name>认为content是namae的子节点; 两种方法: getFirstChild().getNodeName();(获取子节点再获取值) getTextContent();(获取content方法)
    查看全部
  • D_r
    使用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");
    查看全部
  • D_r
    获取xml文件内容的 四种解析方式:DOM SAX DOM4J JDOM DOM使用步骤: 准备工作 1、创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); 2、创建一个DocumentBuilder的对象 DocumentBuilder db=dbf.newDocumentBuilder(); 3、通过DocumentBuilder对象的parser方法加载xml文件到当前项目 Document document = db.parse("books.xml"); DocumentBuilder对象的parse(String fileName)方法返回的是一个Document类型的返回值,此处注意Document类型为org.w3c.dom包中的类型。 AVA解析XML文件(4种) DOM、SAX :java 官方方式,不需要下载jar包 DOM4J、JDOM :第三方,需要网上下载jar包
    查看全部
  • 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()
    查看全部
  • ---------------------------应用JDOM解析子节点属性------------------------------ //通过增强for循环进行遍历子节点集合 for(Element person : personList){ System.out.print("======开始解析第" + personList.indexOf(person)+1 + "个人======"); //解析person的属性 List<Attribute> attrList = person.getAttributes();//适用于我们不知道里面有多少属性 person.getAttributeValue("id");//适用于我们知道子节点属性的名字直接获取其属性值 //遍历属性 for(Attribute attr : attrList){ //获取属性名 String attrName = attr.getName(); //获取属性值 String attrValue = attr.getValue(); System.out.print("属性名:" + ); } System.out.println("======结束解析第" + personList.indexOf(person)+1 + "个人======"); }
    查看全部

举报

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

微信扫码,参与3人拼团

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

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