框架源代碼和網頁源代碼,框架源碼深入需要準備的知識之解析XML

 2023-11-22 阅读 24 评论 0

摘要:2019獨角獸企業重金招聘Python工程師標準>>> 1.DOM解析XML ? ? ? ? DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 框架源代碼和網頁源代碼、DocumentBuilder documentBuilder = documentBuilderFactory.newDocu

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

1.DOM解析XML

? ? ? ? DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

框架源代碼和網頁源代碼、DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();

Document document = documentBuilder.parse(new FileInputStream(file));

得到的Document對象就是XML文檔對象的實體

什么是開源框架?NodeList nodeList = document.getElementsByTagName("book");

得到標簽名稱是book的節點集合

php接口框架?Node和Element的區別:

? ?node和Element是兩個領域的概念。


? ? ? ? NODE是相對TREE這種數據結構而言的。TREE就是由NODE組成。這個部分你可以參考離散數學的樹圖。

web前端整站源碼,

? ? ? ? ELEMENT則是XML里的概念,<xxx>就是元素,是XML中的數據的組成部分之一。

? ? ? ? 元素(Element)和結點(Node)的區別,元素是一個小范圍的定義,必須是含有完整信息的結點才是一個元素,

如何閱讀框架源碼,例如<div>...</div>。但是一個結點不一定是一個元素,而一個元素一定是一個結點。

舉例來說:

<book class="Hello World 2">

Java框架? ? ? ?<name scope="test">Spring in Action</name>

? ? ?<price scope="dev">39.0</price>

? ?</book>

java源碼大全、這整個可以理解為一個Element ,但是如果使用geiChildNode 發現有5個Node,分別是<name></name> , <price></price>,Spring in Action ,39.0 </book>

代碼實例如下:

PHP框架、

NodeList nodeList = document.getElementsByTagName("book");


for (int i = 0; i < nodeList.getLength(); i++) {

Xml解析、Node node = nodeList.item(i);

Element element = (Element) node;

System.err.println(element.getAttribute("class"));

NodeList nodeList2 = element.getElementsByTagName("price");

html5框架,System.err.println(((Element) (nodeList2.item(0))).getAttribute("scope"));

}

//for (int i = 0; i < nodeList.getLength(); i++) {

Node node = nodeList.item(i);

System.err.println(node.getChildNodes().getLength());

}

打印的結果是5?

? ?NodeList child = node.getChildNodes();

for (int j = 0; j < child.getLength(); j++) {

System.err.println(child.item(j).getNodeType() + "node Type");

}

? ? 打印結果依次為:

3node Type

? ? ? ? ? ? 1node Type

? ? ? ? ? ? 3node Type

? ? ? ? ? ? 1node Type

? ? ? ? ? ? 3node Type

可以驗證我們想要表達的


2.SAX解析XML文件


? 重要的一點:EntityResolver 這個究竟是為了干什么 :?http://www.cnblogs.com/mjorcen/p/3642855.html?這個文章有詳細的解釋

? ? ? ?繼承DefaultHandler 這個類 主要重載以下方法就可以實現一些類似的操作:

? ? ?startDocument :XML解析開始

? ? ? ? ? endDocument:XML解析結束 ?

? ? ? ? ? startElement:解析元素開始

? ? ? ? ? endElement:解析元素結束

? ? ? ? ? characters:獲取節點中間文字內容


轉載于:https://my.oschina.net/payzheng/blog/510937

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/184714.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息