-
四种解析 dom解析查看全部
-
DOM解析xml文件的准备工作
拖拽要解析的xml文件到项目中,选择copy files,因为link to files会导致导出该项目后找不到xml文件
查看全部 -
xml用于存储和传输信息,比如不同平台(app和网页版),不同系统,不同程序间(订票和支付)
xml是树形结构
查看全部 -
DOM优点
查看全部 -
SAX优点
查看全部 -
JDOM和DOM4J
查看全部 -
DOM4J方式解析
SAXReader reader = new SAXReader(); Document document = reader.read(重载);
该解析方式可以使用迭代器获取子节点
Iterator it = BookSrore.elementIterator();
查看全部 -
<?xml version="1.0" encoding="UTF-8" xml?>
其中encoding指定了解析时默认的编码方式。JDOM也可以用如下方式指定解析时采取的编码方式
new InputStreamReader(in,"UTF-8")
查看全部 -
JDOM方式解析
SAXBuilder saxBuilder = new SAXBuilder(); InputStream in = new FileInputStream("bool.xml"); Document document = saxBuilder.build(in);
查看全部 -
SAX解析:
SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); //该类是继承了DefaultHandler的自定义类,通过重写其中的方法,实现整个解析过程要执行的操作 SAXParserHandler handler = new SAXParserHandler(); parser.parse("book.xml",handler);
查看全部 -
获取节点内的text内容,可以先获取该Text节点,然后getNodeValue();
或者使用getTextContent() ---返回该节点下的所有text内容(不包含标签)
查看全部 -
四种解析方式:DOM、SAX、DOM4J、JDOM
//DOM使用
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse("bool.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;
public class bookparse {
public static void main(String[] args) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse("src/lib/book.xml");
NodeList booklist = document.getElementsByTagName("book");
for (int i = 0; i < booklist.getLength(); i++) {
Node node = booklist.item(i);
NamedNodeMap nnms = node.getAttributes();
System.out.println("第" + (i + 1) + "本书:");
for (int j = 0; j < nnms.getLength(); j++) {
NodeList bookchild = node.getChildNodes();
for (int k = 0; k < bookchild.getLength(); k++) {
Node bookvalue = bookchild.item(k);
if (bookvalue.getNodeType() == Node.ELEMENT_NODE) {
System.out.print(bookvalue.getNodeName() + ":");
System.out.println(bookvalue.getTextContent());
}
}
}
System.out.println("");
}
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
查看全部 -
JDOM和DOMJ(DOM4J基于JDOM,性能上更好一些)
查看全部 -
SAX方式的优缺点(按顺利一步一步往下读取)
查看全部
举报