-
四種解析 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方式的優缺點(按順利一步一步往下讀?。?/p>
查看全部
舉報