java学习是xml解析
来源:互联网 发布:python 里的key 编辑:程序博客网 时间:2024/04/26 05:02
简单实现xml解析的四种方法:
方法一:
package Ray.xml;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.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;public class TestXML2 {public static void main(String[] args) {DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();try {DocumentBuilder document = documentBuilderFactory.newDocumentBuilder();Document parse = document.parse("hello.xml");NodeList element = parse.getElementsByTagName("student");for(int i = 0;i<element.getLength();i++){//System.out.println(element.item(i));Node item = element.item(i);Element e = (Element)item;String attribute = e.getAttribute("id");System.out.println(attribute);Element name = (Element) e.getElementsByTagName("name").item(0);Element gender =(Element) e.getElementsByTagName("gender").item(0);Element score =(Element) e.getElementsByTagName("score").item(0);Element course =(Element) e.getElementsByTagName("course").item(0);System.out.println(name.getTagName()+"-------"+name.getTextContent());System.out.println(gender.getTagName()+"------"+gender.getTextContent());System.out.println(score.getTagName()+"-----"+score.getTextContent());System.out.println(course.getTagName()+"-------"+course.getTextContent());System.out.println("---------------------");}} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
方法二:使用递归package Ray.xml;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Attr;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 TestXML3 {public static void main(String[] args) {DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();try {DocumentBuilder dBuilder = documentBuilderFactory.newDocumentBuilder();Document parse = dBuilder.parse("hello.xml");Element document= parse.getDocumentElement();parseXml(document);} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void parseXml(Element ele) {System.out.print("<");System.out.print(ele.getTagName());if(ele.hasAttributes()){NamedNodeMap attrs = ele.getAttributes();for(int i = 0;i<attrs.getLength();i++){Attr attr = (Attr) attrs.item(i);System.out.print(attr+" ");}}System.out.print(">");NodeList childNodes = ele.getChildNodes();for(int i=0;i<childNodes.getLength();i++){Node item = childNodes.item(i);if(item.getNodeType()==item.ELEMENT_NODE){parseXml((Element)item);}else{System.out.print(item.getTextContent());}}System.out.print("</"+ele.getTagName()+">");}}方法三:使用dom4j包package Ray.xml;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class TestXml4 {public static void main(String[] args) {SAXReader saxReader =new SAXReader();try {Document document = saxReader.read("hello.xml");Element ele = document.getRootElement();List elements = ele.elements();/*for(int i =0;i<elements.size();i++){Element stu = (Element)elements.get(i);Attribute attribute = stu.attribute("id");System.out.println(attribute.getName()+"-----"+attribute.getValue());}*/Iterator elIterator = ele.elementIterator();while(elIterator.hasNext()){Element next = (Element) elIterator.next();Attribute attribute = next.attribute("id");System.out.println(attribute.getName()+"-"+attribute.getValue());List<Element> element = next.elements();for(Element list:element){System.out.println(list.getName()+"----"+list.getStringValue());}}} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}package Ray.xml;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.NamedNodeMap;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;/** * * @author Marie * */public class TestXML {public static void main(String[] args) {DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();DocumentBuilder dBuilder;try {dBuilder = documentBuilderFactory.newDocumentBuilder();Document parse = dBuilder.parse("hello.xml");NodeList childNodes = parse.getChildNodes();Node scores = childNodes.item(2);NodeList childNodes2 = scores.getChildNodes();for(int i =0;i<childNodes2.getLength();i++){Node node = childNodes2.item(i);if(node.getNodeType()==node.ELEMENT_NODE){NamedNodeMap attributes = node.getAttributes();System.out.println(attributes.getNamedItem("id").getNodeValue());NodeList childNodes3 = node.getChildNodes();for(int j =0;j<childNodes3.getLength();j++){Node item = childNodes3.item(j);if(item.getNodeType()==item.ELEMENT_NODE){System.out.println(item.getNodeName()+"----"+item.getTextContent());}}}}} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
阅读全文
0 0
- java学习是xml解析
- java学习笔记--解析xml
- xml构建是解析
- [Java学习]使用digester 解析xml配置文件
- Java解析XML学习笔记(SAX篇)
- Java学习之---DOM解析XML
- [Java学习]使用digester 解析xml配置文件
- Java使用Dom解析xml学习记录
- java使用dom4j解析xml学习记录
- Java学习第8天 XML解析
- java解析xml之xstream学习
- java学习第二十八天之XML解析
- DOM4J学习笔记 --- Java遍历解析XML
- java学习笔记:使用dom4j解析xml
- java 解析xml是报编码异常处理方法
- java与xml学习[DOM方式解析XML文件]
- java的xml学习[使用SAX解析XML文件]
- java的xml学习[JDOM方式解析XML文档]
- 重入锁
- 鼠标移动上去 , 出现小手
- Mybatis和objectMapper的问题
- Python取日期范围循环操作的两种方法
- Invalid bound statement (not found):.....sysFunctionDao.getSysFunctionsById...<init>(MapperMethod.ja
- java学习是xml解析
- hdu6081 度度熊的王国战略(无向图全局最小割 stoer-wagner)
- vagrant provision 典型应用场景
- 神经网络入门(一)
- PostgreSQL数据库角色和权限
- Kotlin初探
- Java数组扩容算法及Java对它的应用
- 用时间加随机数作为文件名称
- VR开发-陀螺仪部分研究