-
/** * 解析xml元素 */ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // 调用父类(DefaultHandler)的startElement方法 super.startElement(uri, localName, qName, attributes); // 开始解析book元素的属性 if (qName.equals("book")) { // //已知book元素下属性的名称,根据属性名称获取属性值 // String value = attributes.getValue("id"); // System.out.println("book的属性值是:" + value); // 不知道book元素下属性的名称以及个数,如何获取属性名以及属性值 int num = attributes.getLength(); for (int i = 0; i < num; i++) { System.out.print("book元素的第" + (i + 1) + "个属性名是:" + attributes.getQName(i)); System.out.println("---属性值是:" + attributes.getValue(i)); } } } 运行结果: SAX解析开始 book元素的第1个属性名是:id---属性值是:1 book元素的第1个属性名是:id---属性值是:2 SAX解析结束查看全部
-
/** * 解析xml元素 */ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // 调用父类(DefaultHandler)的startElement方法 super.startElement(uri, localName, qName, attributes); // 开始解析book元素的属性 if (qName.equals("book")) { String value = attributes.getValue("id"); System.out.println(value); } 运行结果: SAX解析开始 1 2 SAX解析结束查看全部
-
package com.imooc.test; import java.io.IOException; import javax.swing.text.html.parser.Parser; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import com.imooc.SAXParserHandler; public class SAXTest { public static void main(String[] args) { // 获取一个SaxParserFactory的实例 SAXParserFactory factory = SAXParserFactory.newInstance(); // 通过foctory获取SAXParser实例 try { SAXParser parser = factory.newSAXParser(); //创建一个对象SAXParserHandler对象 SAXParserHandler handler = new SAXParserHandler(); parser.parse("books.xml", handler); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }查看全部
-
package com.imooc; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAXParserHandler extends DefaultHandler { /** * 用来遍历xml文件的开始标签 */ @Override public void startElement(String arg0, String arg1, String arg2, Attributes arg3) throws SAXException { // TODO Auto-generated method stub super.startElement(arg0, arg1, arg2, arg3); } /** * 用来遍历xml文件的开始标签 */ @Override public void endElement(String arg0, String arg1, String arg2) throws SAXException { // TODO Auto-generated method stub super.endElement(arg0, arg1, arg2); } /** * 用来标识解析开始 */ @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); System.out.println("SAX解析开始"); } /** * 用来标识解析结束 */ @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); System.out.println("SAX解析结束"); } }查看全部
-
System.out.println(" 节点值是:" + childNodes.item(k).getTextContent() );查看全部
-
运行结果: 一共有2本书! =====下面开始遍历第1本书的内容:===== id的属性值为:1 第1本书共有9个子节点 第2个节点的节点名是:name--节点值是:冰与火之歌 第4个节点的节点名是:author--节点值是:乔治马丁 第6个节点的节点名是:year--节点值是:2014 第8个节点的节点名是:price--节点值是:89 ======结束遍历第1本书的内容:===== =====下面开始遍历第2本书的内容:===== id的属性值为:2 第2本书共有9个子节点 第2个节点的节点名是:name--节点值是:安徒生童话 第4个节点的节点名是:year--节点值是:2004 第6个节点的节点名是:price--节点值是:77 第8个节点的节点名是:language--节点值是:English ======结束遍历第2本书的内容:=====查看全部
-
Element book = (Element) bookList.item(i); // 通过getAttribute("id")方法获取属性值 String attrValue = book.getAttribute("id"); System.out.println("id的属性值为:" + attrValue); // 解析book节点的子节点 NodeList childNodes = book.getChildNodes(); // 遍历childNodes获取每个节点的节点名和节点值 System.out.println("第" + (i + 1) + "本书共有" + childNodes.getLength() + "个子节点"); for (int k = 0; k < childNodes.getLength(); k++) { // 区分出text类型的node和element类型的node if (childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) { // 获取了element类型节点的节点名 System.out.print("第" + (k + 1) + "个节点的节点名是:" + childNodes.item(k).getNodeName()); // 获取了element类型节点的节点值 System.out.println("--节点值是:" + childNodes.item(k).getFirstChild() .getNodeValue()); } } System.out.println("======结束遍历第" + (i + 1) + "本书的内容:====="); }查看全部
-
常用的节点类型查看全部
-
一共有2本书! =====下面开始遍历第1本书的内容:===== id的属性值为:1 第1本书共有9个子节点 name null author null year null price null ======结束遍历第1本书的内容:===== =====下面开始遍历第2本书的内容:===== id的属性值为:2 第2本书共有9个子节点 name null year null price null language null ======结束遍历第2本书的内容:=====查看全部
-
一共有2本书! =====下面开始遍历第1本书的内容:===== id的属性值为:1 第1本书共有9个子节点 #text name #text author #text year #text price #text ======结束遍历第1本书的内容:===== =====下面开始遍历第2本书的内容:===== id的属性值为:2 第2本书共有9个子节点 #text name #text year #text price #text language #text ======结束遍历第2本书的内容:=====查看全部
-
package com.imooc.dmtest.test; 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.NamedNodeMap; //import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class DOMTest { public static void main(String[] args) { // 创建一个DocumentBuilderFactory.newInstance(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 创建一个DocumentBuilder对象查看全部
-
try { // 创建DocumentBuilder对象 DocumentBuilder db = dbf.newDocumentBuilder(); // 通过DocumentBuilder对象的parse()方法加载books.xml文件到当前目录下 Document document = db.parse("books.xml"); // 获取所有book节点的集合 NodeList bookList = document.getElementsByTagName("book"); // 通过nodeList的getLength()方法可以获取bookList的长度 System.out.println("一共有" + bookList.getLength() + "本书!"); // 遍历每一个book节点 for(int i =0;i < bookList.getLength();i++){ System.out.println("=====下面开始遍历第" + (i + 1) + "本书的内容:====="); //通过item(i)获取一个book节点,nodeList的索引值从0开始 // Node book = bookList.item(i); //获取book节点的所有属性的集合 // NamedNodeMap attrs = book.getAttributes(); // System.out.println("第" + (i+1) +"本书共有" + attrs.getLength() +"个属性"); //遍历book的属性 // for(int j = 0;j < attrs.getLength();j++){ // //通过item(index)方法获取book节点的某一个属性 // Node attr = attrs.item(j); // 或者 attrs.item(j).getNodeName();查看全部
-
// // 获取属性名 // System.out.print("属性名:" + attr.getNodeName()); // // 获取属性值 // System.out.println(" 属性值:" + attr.getNodeValue()); // } //前提:已经知道book节点有且只有一个id属性值 //将Book节点进行强制类型转换,转换成Element类型 Element book = (Element)bookList.item(i); //通过getAttribute("id")方法获取属性值 String attrValue = book.getAttribute("id"); System.out.println("id的属性值为:" + attrValue); System.out.println("======结束遍历第" + (i + 1) + "本书的内容:====="); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }查看全部
-
标题<?xml version="1.0" encoding="UTF-8"?> <> </>查看全部
-
kandao13:55查看全部
举报
0/150
提交
取消