-
handler重写: 获取xml解析开始、结束 startDocument() endDocument() 获取xml的标签 开始:startElement(String uri, String localName, String qName,Attributes attributes) 获取属性名:attributes.getQName(i);获取属性值:attributes.getValue(i) 结束:endElement(String uri, String localName, String qName) 获取节点值 characters(char[] ch, int start, int length) String value = new String(ch, start, length);查看全部
-
SAX解析的原理: 通过自己创建的Handler类,去逐个分析遇到的节点;Handler走到第一行的XML申明时,就开始分析节点了。 遇到bookstore节点就可以进行处理了,但是bookstore没有属性所以就不对其做更多的处理了。 遇到book节点时,book节点是拥有的id属性,会通过startElement来处理book节点的id属性 遇到book节点的子节点name节点,它没有必要处理name的属性,但name是个ElementNode类型的节点,它会获取name的节点名和节点值,执行完name节点后会通过endElement方法执行name节点的结束标签 SAX解析XML的步骤: 1、通过SAXParserFactory的静态newInstance()方法获取SAXParserFactory实例factory 2、通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 3、创建一个类继承DefaultHandler,重写其中的一些方法进行业务处理并创建这个类的实例handler查看全部
-
DOM方式解析步骤(2) 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()获取属性值查看全部
-
DOM方式解析步骤(1) 1.创建一个DocumentBuilderFactory对象 DocumentBuilderFactory.newInstance(); 2.创建一个DocumentBuilder对象 DocumentBuilderFactoryd实例对象.newDocumentBuilder(); 3.通过DocumentBuilder对象的parse(String fileName)方法解析XML文件;查看全部
-
四种解析方式:DOM/SAX(官方),DOM4J/JDOM(需下载额外的包)查看全部
-
JAVA 四种 XML 解析方式 基础方法 DOM (与平台无关的官方解析) SAX (基于事件驱动的解析) 扩展方法 (在基础方法上扩展的,只有在 java 中才能够使用的解析方法) JDOM 、 DOM4J DOM 解析优缺点: 优点:在内存中形成树结构,直观容易理解及代码编写维护 缺点:当 XML 文件比较大时,对内存耗费大,容易影响解析性能并造成内存溢出 SAX 解析优缺点: 优点:采用事件驱动模式,对内存耗费比较小,适用于只需要处理 XML 中的数据 缺点:不容易编码,很难同时访问同一个 XML 中的多处不同数据 JDOM 解析特点 A、仅使用具体类而不使用接口 B、API 大量使用了 Collections 类 DOM4J 解析特点 A、是JDOM 的一种智能分支,合并了许多超出基本 XML 文档表示的功能 B、使用接口和抽象基本类方法,是一个优秀的 Java XML API C、具有性能优异、灵活性好,功能强大和极端易用的特点 D、开放的源代码查看全部
-
解析子节点的信息 Iterator itt = book.elementIterator(); while(itt.hasNext()){ Element bookchild = (Element)itt.next(); bookchild.getName(); bookchild.getStringValue(); }查看全部
-
---------------------------------------DOM4J解析节点属性--------------------------------------- //创建SAXReader的对象reader SAXReader reader = new SAXReader(); //通过reader的read加载person.xml文件 Document document = reader.read(new File("person.xml")); //通过document对象获取根节点persons Element persons = document.getRootElement(); //通过element对象的elementIterator方法获取迭代器 Iterator it = persons.getIterator(); //遍历迭代器,获取根节点中的信息(persons)适用于我们不知道节点的名称时 while(it.hasNext()){ Element person = (Element)it.next(); //获取person的属性名和属性值 List<Attribute> personAttrs = person.attributes(); //由于是List类型所以我们使用for each()循环进行遍历 for(Attribute attr : personAttrs){ System.out.println("节点名:" + attr.getName() + "--节点值:" + attr.getValue()); } } ---------------------------注意代码中import时导入的是dom4j下的--------------------------------查看全部
-
---------------------------------关于JDOM使用过程中JAR包的引用--------------------------------- 我们的项目中直接配置build path指定的jar包如果是在我们PC的硬盘某个路径,那么在日后导出项目时候,项目中是没有jar包的。 我们只能在我们的项目下建立一个lib文件夹将所需jar包复制进去,再进行build path的配置即可。查看全部
-
在JDOM中存储对象, Person personEntity = new Person(); if(attrName.equals("id")){ personEntity.setId(attrValue); } if(child.getName().equals("name")){ personEntity.setName(child.getValue()); }else if(child.getName().equals("sex")){ personEntity.setSex(child.getValue()); }else if{ ... }查看全部
-
-----------------------------------JDOM 解析时乱码的处理----------------------------------- 解析XML文件出现乱码时,第一时间应该查看XML的编码属性,如果编码有问题,则自行修改后再进行解析; 如果修改XML的编码不好使,则只能在不改变XML文件的基础下,修改我们的JDOM代码 //创建输入流,将XML文件加载到输入流中 InputStream in = new FileInputStream("src/person.xml"); //使用包装流InputStreamReader进行读取编码的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");查看全部
-
1、使用 foreach 遍历子元素节点时,获取索引使用 indexOf + 1 for(Element ele : eles) eles.indexOf(ele)+1 2、获取元素的属性节点 List<Attribute> attrs = ele.getAttributes(); 如果知道属性名称通过 getAttributeValue("属性名") 获取属性值查看全部
-
SAX解析XML的速度比DOM的块, SAX的解析XML的解析器,需要重写startElement()开始解析的方法and endElemaent()方法 结束解析的方法and characters()方法 重写charaters()方法时,读取节点值(去除空的节点值) if(!value.trim().equals("")){ System.out.println(value); }查看全部
-
SAX解析的原理: 通过自己创建的Handler类,去逐个分析遇到的节点;Handler走到第一行的XML申明时,就开始分析节点了。 遇到bookstore节点就可以进行处理了,但是bookstore没有属性所以就不对其做更多的处理了。 遇到book节点时,book节点是拥有的id属性,会通过startElement来处理book节点的id属性 遇到book节点的子节点name节点,它没有必要处理name的属性,但name是个ElementNode类型的节点,它会获取name的节点名和节点值,执行完name节点后会通过endElement方法执行name节点的结束标签 SAX解析XML的步骤: 1、通过SAXParserFactory的静态newInstance()方法获取SAXParserFactory实例factory 2、通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 3、创建一个类继承DefaultHandler,重写其中的一些方法进行业务处理并创建这个类的实例handler查看全部
-
获取根节点 Node root = document.getDocumentElement(); 不知道节点名称获取元素的子节点都可以使用 getChildNodes(),包括根节点 NodeList childs = document.getChildNodes(); NodeList childs = ele.getChildNodes(); 非空白文本节点 childs.item(index).getNodeType() == Node.ELEMENT_NODE 获取节点名、值(元素、属性) node.getNodeName() node.getNodeValue() / node.getTextContent();查看全部
举报
0/150
提交
取消