**
**
1).DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 2).DocumentBuilder builder = factory.newDocumentBuilder(); 3).File file = new File() //指定xml文件 4).Document document = builder.parse(file); //开始解析文件 5).Element e = document.getDocumentElement(); //获取根节点 6).NodeList nl = e.getChildNodes(); //获取所有子节点 7). for(int i=0;i<nl.getLength();i++) { if(nl.item(i).getNodeType()==Node.ELEMENT_NODE)//判断获取元素节点(DOM解析将根节点下的所有都看作节点,分为元素节点 和文本节点,1就为元素节点) { Element e2 = (Element) nl.item(i); String tagName = e2.getNodeName(); //获取节点(标签)名称 String attValue = e2.getAttribute("class"); //获取指定属性节点的值 } 8).若子元素节点下还有元素节点,重复 7)操作 9).其中getTextContent()方法可以获得文本内容**
**
1).SAXReader reader = new SAXReader(); 2).Document document = reader.read(filePath) 3).Element rootElement = document.getRootElement(); //获取根节点 4).List<Element> elements = rootElement.elements(); //获取根节点下的所有子节点 (attributeValue("") 这个方法可以获取指定属性的属性值或所有属性名是这个的属性值) 5).for(Element e : elements)循环遍历子节点 e.attribute("")获得指定属性 .getValue()获取该属性的属性值 .getName()获取该属性的名称 6).获取当前标签的文本值 e1.getText(); 获取当前标签下所有的文本值 e1.getStringValue();**
**
1).SAXParserFactory factory = SAXParserFactory.newInstance(); 2).SAXParser parser = factory.newSAXParser(); 3).可以选择再写一个类来继承DefaultHandler,并重写5个方法 (1)startDocument()表示解析开始 (2)endDocument()表示解析结束 (3)startElement(String uri, String localName, String qName, Attributes attributes) //这个表示到了获取开始标签 qName表示标签名称 (3.1)for(int i=0;i<attributes.getLength();i++) { String name = attributes.getQName(i); String value = attributes.getValue(i); } //可以这样遍历开始标签(包括根节点和子节点),name表示属性名,value表示属性值 (4)endElement(String uri, String localName, String qName) //这个表示到了获取结束标签 qName表示标签名 (4.1) 这里直接可以拼接一个结束标签 "</"+qName+">" (5)characters(char[] ch, int start, int length) // 这个表示到了获取文本了 (5.1)String msg = new String(ch,start,length); 他是给了一个字符数组,开始和结束,将其变成字符串即可 实现完这个类后new自定义的类对象,parse.parse("文件路径",自定义类对象) 第三步也可以这样写:前两步不变 parse.parse("src/com/xml/ch2/books.xml", new DefaultHandler(){重写那五个方法};**
**
1).File file = new File(filePath); //指定xml文件路径 2).SAXBuilder builder = new SAXBuilder(); 3).Document doc = builder.build(file); //开始解析文件 4).Element root = doc.getRootElement(); //获得根节点 5).List<Element> list = root.getChildren() //获取根节点下的所有子节点,可以指定节点名称 6). for(Element e : list) { String name = e.getAttributeValue(""); String cls = e.getAttributeValue(""); } //获取节点的属性值,(可以指定属性名)