DOM解析
//使用工厂类创建对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//使用工厂类的对象创建文档对象,该对象映射操作xml文件
DocumentBuilder docum = dbf.newDocumentBuilder();
Document doc = docum.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
//获取文档中所有的student节点,返回的是节点的集合
NodeList nodelist = doc.getElementsByTagName("student");
DOM4J解析
SAXReader sax = new SAXReader();
// 使用read()读取文档
Document doc = sax.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
Element root = doc.getRootElement();//获取根节点
List<Element> nodes = root.elements();//获取根节点下的子节点,返回List集合
JDOM解析
//加载文档
SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
//直接获取文档的根节点
Element root = doc.getRootElement();
List<Element> children = root.getChildren();//获取跟节点下的子节点。返回List集合
List<Students> list = new ArrayList<Students>();
SAX解析
SAXParserFactory sax = SAXParserFactory.newInstance();
SAXParser parse = sax.newSAXParser();//创建解析对象
MyDefaultHandler hand = new MyDefaultHandler();
parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"),hand);
XPath解析
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//实例化DocumentBuilderFactory对象
DocumentBuilder bulider = dbf.newDocumentBuilder();
Document doc = bulider.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
XPathFactory factory = XPathFactory.newInstance();//实例化XPathFactory对象
XPath xpath = factory.newXPath();
XPathExpression compile = xpath.compile("//student");//选取student节点
NodeList nodes = (NodeList)compile.evaluate(doc, XPathConstants.NODESET);//获取student节点的所有节点