java读取xml(一)
1.准备xml文件如下:<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="students.xsl"?><students><student id="01"><name>张三</name><age>18</age></student><student id="02"><name>李四</name><age>20</age></student></students>
2.利用java的api读取xml并输出name和age节点里面的文本值
public static void main(String[] args) {/* * 把xml文档获取生成dom对象的解析器 */DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();try {/* *使用此对象生成一个document对象*/DocumentBuilder db = dbf.newDocumentBuilder();/* *表示整个xml文档*/Document doc = db.parse(new File("bin/students.xml"));/* * 获取节点名为student所有节点,于html的document.getElementsByTagName类似 */NodeList nl = doc.getElementsByTagName("student");for (int i = 0; i < nl.getLength(); i++) {/* * 每一个student是一个节点 */Element eltStu = (Element) nl.item(i);/* * 返回name节点对象 */Node eltName = eltStu.getElementsByTagName("name").item(0);/* * 返回age节点对象 */Node eltAge = eltStu.getElementsByTagName("age").item(0);/* * 取得name节点的信息,getTextContent是返回所有子节点的信息,因为在name节点中只有一个文本节点,所以用此方法可行 * eltName.getFirstChild().getNodeValue() */System.out.println(eltName.getTextContent());System.out.println(eltAge.getTextContent());}} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
页:
[1]