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

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

难度初级
时长 3小时 0分
学习人数
综合评分9.63
323人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • SAX获取节点名与节点值. 1.节点名直接在重写的startElement()方法中通过输出qName便可以. 2.要得到节点值,则需要在类中重写characters()方法 public void characters(char[] ch, int start, int length) SAX中是先通过startDocument->startElement->characters->endElement->endDocument. 中间3个一直循环. 每次遇到标签调用characters方法的时候它的字符数组ch实际上就是我们整个的book xml文档的内容。 start为要读取内容的开始位置放到ch数组,length为长度 <name>冰与火之歌</name> 则开始位置在冰,长度为5. 把ch字符数组转文String类型输出,通过String(byte[] bytes,int offset,int length)的构造方法进行数组的传递. 再去除解析时多余空格,String.trim()作用是去除字符串的前缀和后缀的空格,这里空格和换行也当做一个节点,所以例子中会多了两行空格 String value=String(ch,start,length) if(!value.trim().equals("")){ System.out.println(value); }
    查看全部
  • SAX方法获取XML的节点属性 1.在继承于DefaultHandler的类中重写startElement()方法 startElement(String uri, String localName, String qName,Attributes attributes) attributes.getVaule();方法参数可以是属性名或者索引值(第几个属性值),来获取属性值,返回字符串. attributes.getQName();方法参数是索引值,获取属性名. 2.已知节点元素下属性的名称,根据属性名获取属性值. 在此方法中qName为属性名,通过attributes.getValue("")方法获取属性值.参数是属性名.返回字符串类型. 3.未知节点元素下属性的名称以及个数时 通过attributes.getLength();方法判断单个开始标签一共有多少个属性名. 通过for循环依次输出属性名和属性值 for(i=0;i<attributes.getLength();i++) { System.out.print("book元素的第"+(i+1)+"个属性名为"+attributes.getQName(i)); System.out.println("属性值是:"+attributes.getValue(i)); }
    查看全部
  • SAX方式解析xml步骤 1.通过SAXParserFactory的静态newInstance()方法获取一个SAXParserFactory的对象。 2.通过SAXParserFactory对象的newSAXParser()方法返回一个SAXParser类的对象。 3.创建一个类继承DefaultHandler,重写其中的一些方法并创建类的实例. 4.通过SAXParser类的Parse(Stringname,df)方法解析xml文件,参数Stringname为路径名,df为继承于DefaultHandler类的实例化对象,不需要定义变量存储返回的类型. SAX是按节点顺序进行解析,遇到xml的声明即开始解析,遇到最后一个节点的尾节点便结束解析,需要用户自己定义一个类继承于DefaultHandler类来解析,遇到开始标签节点便通过startElement开始解析节点,遇到结束标签节点便通过endElement结束解析,再遇到开始节点继续通过startElement解析,一直循环直到xml文件最后的结束标签节点. 5.在继承于DefaultHandler这个类中需要重写父类的startElement()和endElement()方法,来进行开始节点与结束节点的解析,再重写startDocument()方法与endDocument()方法来标识解析的开始与结束.
    查看全部
  • JDOM与DOM4J的区分
    查看全部
  • JDOM与DOM4J的区分
    查看全部
  • SAX解析的优缺点
    查看全部
  • DOM解析优缺点分析
    查看全部
  • java解析xml文件四种方式的区别
    查看全部
  • 注意document对象的导入
    查看全部
  • Element(元素节点)节点类型英文全称为ELEMENT_NODE 它的nodeName返回值为element name而nodeValue的返回值为null. Attr(属性节点)节点类型英文全称为ATTRIBUTE_NODE 它的nodeName返回值为属性名称,nodeValue返回值为属性值. Text(文本节点)节点类型英文全称为TEXT_NODE 它的nodeName返回值为#text,nodeValue返回值为节点内容.
    查看全部
  • 解析文件节点以及子节点的值 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 文档中的每个成分都是一个节点。 DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 标签是一个元素节点 包含在 XML 元素中的文本是文本节点 每一个 XML 属性是一个属性节点 注释属于注释节点 文本总是存储在文本节点中 在 DOM 处理中一个普遍的错误是,认为元素节点包含文本。 不过,元素节点的文本是存储在文本节点中的。 在这个例子中:<year>2005</year>,元素节点 <year>,拥有一个值为 "2005" 的文本节点。 "2005" 不是 <year> 元素的值!
    查看全部
  • 使用Dom解析xml文件的属性节点。 在不知道节点属性的个数和属性名时: 1、通过document.getElementsByTagName("标签名")获得所有标签名的节点,得到一个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.getElementsByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合 2、通过NodeList.getLength()获得集合长度,遍历集合 3、Element book=(Element)NodeList.item(i);//强制转换为element类型 4、string attrValue = book.getAttribute("id"); //参数为属性名,返回属性值
    查看全部
  • JAVA读取xml文件叫做解析 目的是获取xml的节点名,节点值,属性名,属性值. 目标是解析xml文件后,JAVA程序能够得到xml文件的所有数据. 有4种解析方法 1.DOM 2.SAX 3.DOM4J 4.JDOM 而DOM,SAX解析是java官方提供的. DOM解析方法 1.把xml文件复制到java项目中 2.创建DocumentBuilderFactory对象,用静态方法newInstance(); 3.创建DocumentBuilder对象,用DocumentBuilderFactory对象的newDocumentBuilder(); //系统会提示要捕获异常 4.通过DocumentBuilder的Parse(String name);来解析xml文件.此方法返回一个Document对象,导入Document的W3C那个包,//系统也会提示捕获异常 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder bf=dbf.newDocumentBuilder(); Document document=dbf.Parse("E:\\java\\text.xml");
    查看全部
  • XML可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发,可以跨平台传送数据. xml文件头要添加声明: <?xml version="1.0" encoding="UTF-8"?> 以问号开头,一般兼容版本为1.0,字符编码按自己需要
    查看全部
    0 采集 收起 来源:初次邂逅 XML

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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