XML是描述結(jié)構(gòu)化信息的技術(shù),XML格式能偶表達(dá)層次結(jié)構(gòu)和重復(fù)的元素而不會(huì)被曲解。
XML和HTML格式都是古老的標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)的衍生語言。
XML和HTML的區(qū)別,大小寫的區(qū)分等等。
通常使用DOM或者SAX來解析XML,如果在節(jié)省內(nèi)存或者只是對(duì)某些元素感興趣,而不關(guān)心他們的上下文,那么可以考慮使用SAX。
關(guān)于DOM,要讀入一個(gè)XML文檔,首先需要一個(gè)DocumentBuilder對(duì)象,可以從DocumentBuilderFactory中得到這個(gè)對(duì)象,例如:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
然后從文件中讀入某個(gè)文檔:
File f = ...
Document doc = builder.parse(f);
或者,可以用一個(gè)URL:
URL u = ...
Document doc = builder.parse(u);
可以通過getDocumentElement方法來分析文檔的內(nèi)容,他將返回根元素。
Element root = doc.getDocumentElement();
分析子元素可以使用root.getChildNodes方法,但要注意。例如,假設(shè)如下文檔:
<font>
<name>Helvetica</name>
<size>36</size>
</font>
這時(shí)候會(huì)分析出5個(gè)元素來:
<font>和<name>之間的空白區(qū)域
name元素
</name>和<size>之間的空白區(qū)域
size元素
</size>和</font>之間的空白區(qū)域
解決方法是:
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node instanceof Element) {
Element element = (Element) node;
System.out.println(element.getTextContent());
}
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。