XML與web開發-01- 在頁面顯示和 XML DOM 解析

前言: 關于 xml 特點和基礎知識,可以菜鳥教程進行學習:http://www.runoob.com/xml/xml-tutorial.html
本系列筆記,主要介紹 xml 在 web 開發時需要了解的知識

XML 在頁面顯示數據

?XML 指可擴展標記語言(eXtensible Markup Language)。
?XML 被設計用來傳輸和存儲數據。

一、怎么在頁面上只顯示數據?

?大家在網頁上可能都見過這樣的 xml 文件:

1483449-20181103225816989-1322569347.jpg

?這是沒有任何樣式的 xml,打開 tomcat 什么的服務器,在網頁上瀏覽 xml 文件的樣式,它的源碼是:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><addresslist><linkman><name>肖朋偉</name><id>2236</id><company>null</company><email>xpwi@qq.com</email><tel>66666</tel></linkman>
</addresslist>

?怎樣在頁面上只顯示文字,并加上特定的樣式呢?那就要用到 css 了

(1)先自己寫一個 css 樣式:

name{display: block;color: brown;font-size: 20pt;font-weight: bold;
}id, company, email, tel, site{display: block;color: black;font-size: 14pt;font-weight: normal;}

(2)在 xml 文件中引入這個 css 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- 加上樣式,注意路徑 -->
<?xml-stylesheet type="text/css" href="../css/first.css" ?><addresslist><linkman><name>肖朋偉</name><id>2236</id><company>null</company><email>xpwi@qq.com</email><tel>66666</tel></linkman>
</addresslist>

(3)就會這樣顯示了:

1483449-20181103230750348-552094879.jpg

(4)然后,xml 也可以像 html 標簽那樣,加屬性,例如:

<tel id = "userTel">66666</tel>

XML與web開發-01- xml 解析

在 xml 文件,更多的用來描述信息的內容,
所以在得到一個 XML 文檔后,應該利用程序按照其中元素的定義名稱取出對應內容,
這樣的操作就稱為 xml 解析。

W3C 定義了 SAX 和 DOM 兩種解析方式

XML - DOM 解析操作

在應用程序中,基于 DOM 的 XML 分析器將一個 XML 文檔轉換成一個對象模型的集合,通常稱為 DOM 樹
應用程序正是通過對這個對象模型的操作,來實現對 XML 文檔數據的操作。

準備一個 xml 文件(路徑是 D:\xml\first.xml,下面要用目錄,注意):

<?xml version="1.0" encoding="UTF-8" standalone="no"?><addresslist><linkman><name>肖朋偉</name><id>2236</id><company>null</company><email>xpwi@qq.com</email><tel>66666</tel></linkman>
</addresslist>

java 解析文件:

【注意】:

1.目錄,我是新建一個包 xml ,再新建一個 dom.java
2.注意解析的 xml 路徑,要根據自己的路徑設置
3.如果自己寫代碼,注意一下導包,Document,是 org.w3c.dom.Document

// 目錄,我是新建一個包 xml ,再新建一個 dom.java
package xml;import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;//注意 Document,是 org.w3c.dom.Document
//默認導包會是 javax 那個,注意一下
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;public class dom {public static void main(String[] args){//(1)建立 DocumentBuilderFactory,用來得到 DocumentBuilderDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//(2)通過 DocumentBuilderFactory,來得到 DocumentBuilderDocumentBuilder builder = null;try{builder = factory.newDocumentBuilder();}catch (ParserConfigurationException e){e.printStackTrace();}//(3)定義Document doc = null;try {//讀取指定路徑的 xml 文件,要先有一個這樣的文件doc = builder.parse("D://xml/" + File.separator + "first.xml");} catch (SAXException e){e.printStackTrace();} catch (IOException e){e.printStackTrace();}//(4)查找 name 的節點NodeList nl = doc.getElementsByTagName("name");//(5)輸出 NodeList 中第一個子節點中文本節點的內容System.out.println("姓名:" + nl.item(0).getFirstChild().getNodeValue());}}

運行就會在控制臺打印:

1483449-20181104000235609-1814728293.jpg

DOM 解析4個核心操作接口:

  • Document:此接口代表了整個 XML 文檔,代表整個 DOM 樹的樹根,提供了對文檔中的數據進行訪問和操作的入口,
    通過 Document 節點可以訪問 XML 文件中所有的元素內容。Document 接口的常用方法如下表:

? Document 接口的常用方法

No.
方 法
類 型
描 述
1
public NodeList getElementsByTagName(String name)
普通
取得指定節點名稱的 NodeList
2
public Element createElement(String tagName)throws DOMException
普通
創建一個指定名稱的節點
3
public Text createTextNode(String data)
普通
創建一個文本內容節點
4
Element createElement(String tagName)throws DOMException
普通
創建一個節點元素
5
public Attr createAttribute(String name)throws DOMException
普通
創建一個節點元素
  • Node:此接口在整個 DOM 樹中具有劇組輕重的地位,DOM 操作的核心接口中有很大一部分是
    從 Node 接口繼承過來的。例如,Document、Element、Atrr 等接口

? Node 接口的常用方法

No.
方 法
類 型
描 述
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點
1 Node appendChild(Node newChild)throws DOMException 普通 在當前節點下增加一個新節點

轉載于:https://www.cnblogs.com/xpwi/p/9902741.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279026.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279026.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279026.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

酷安應用市場php源碼,酷安應用市場 v11.0.3-999 去廣告極限精簡版

酷安&#xff0c;真實有趣的數碼社區。酷安app&#xff0c;國內安卓應用市場客戶端&#xff0c;應用資源豐富&#xff0c;應用開發者水準高&#xff0c;應用無首發Logo&#xff0c;原汁原味上架&#xff0c;得到了安卓用戶群廣泛認可。有人說現在的酷安市場(酷安網)沒有以前那么…

再戰android-語音識別2(修改配置)

可怕的半桶水一直在晃。程序中需要根據用戶的選擇設置語音識別的語言&#xff08;目前科大訊飛支持英文、普通話、粵語&#xff09;&#xff0c;不想每次要用戶去IatSetting中去改&#xff0c;需要能直接修改IatSetting的設置。之前移植的IatSetting頁面沒有細究&#xff0c;直…

chromebook刷機_如何將網站添加到您的Chromebook架子上

chromebook刷機Bookmarks are great to keep your favorite sites nearby, but they aren’t the fastest option out there. Instead, why not add shortcuts for your favorite websites right on the Chromebook shelf? 書簽可以很好地將您喜歡的網站保留在附近&#xff0c…

php判斷外鏈,php檢查字符串中是否有外鏈的方法

這篇文章主要介紹了php檢查字符串中是否有外鏈的方法,涉及php針對字符串的正則匹配的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下本文實例講述了php檢查字符串中是否有外鏈的方法。分享給大家供大家參考。具體實現方法如下&#xff1a;/*** is_external_link 檢測字符…

【經驗分享】產品、運營人如何告別重復的數據分析工作?

我是一名互聯網的運營打雜MM&#xff0c;除了每天繁忙的工作&#xff0c;每周、每月的數據匯報也是我頭疼的東東。因為本身我不聰明&#xff0c;數學也不是太好&#xff0c;對數據不那么愛&#xff0c;而且還要做數據分析&#xff0c;對于我這種數據小白分分鐘崩潰。每周、每月…

JVM虛擬機調參

JVM虛擬機調參 一、堆大小設置JVM 中最大堆大小有三方面限制&#xff1a;相關操作系統的數據模型&#xff08;32-bt還是64-bit&#xff09;限制&#xff1b;系統的可用虛擬內存限制&#xff1b;系統的可用物理內存限制。32位系統下&#xff0c;一般限制在1.5G~2G&#xff1b;64…

Locktopus鎖定iOS設備上的單個應用程序

If you want to share a cool game on your iOS device but not let everyone read your email, Locktopus offers a simple app-by-app lockdown solution. 如果您想在iOS設備上共享一個很棒的游戲&#xff0c;但又不想讓所有人都閱讀您的電子郵件&#xff0c;那么Locktopus提…

php speedtest,大神教你如何搭建自己的web speedtest站點

導讀speedtest作為一款在線并且可視化的網速測試工具。使用方法簡單&#xff0c;無需下載、安裝多余軟件&#xff0c;只需有瀏覽器即可。那如何搭建一個自己的web speedtest站點呢&#xff1f;項目開源地址&#xff1a;https://github.com/adolfintel/speedtest安裝web,php,git…

MySQL服務器硬件和操作系統調節

1. 擁有足夠的物理內存來把整個InnoDB文件加載到內存中——在內存中訪問文件時的速度要比在硬盤中訪問時快的多。 2. 不惜一切代價避免使用Swap交換分區 – 交換時是從硬盤讀取的&#xff0c;它的速度很慢。 3. 使用電池供電的RAM&#xff08;注&#xff1a;RAM即隨機存儲器&am…

數據結構小結+模板

\[OI中的數據結構\] \[By\;TYQ\] 線性結構 大部略 單調棧 棧 , 但是push的時候要彈出所有比他小/大的(多用于優化Dp) 單調隊列 隊列 , 同單調棧 樹狀結構 樹狀數組 核心:lowbit(x) (x) & (-x) ...其實lowbit(x) 2^x的最低非0位 PION8012初賽中考了...但只涉及正數... 為什…

視頻翻錄_將DVD解密并復制到硬盤驅動器而無需翻錄

視頻翻錄Have you ever wanted to make backup copies of your DVDs but didn’t want to mess with confusing DVD ripping software? Today, we’ll look at drop dead simple method to decrypt DVDs on the fly with DVD43 so you can easily copy them to your hard dri…

詳解面向對象、構造函數、原型與原型鏈

詳解面向對象、構造函數、原型與原型鏈 為了幫助大家能夠更加直觀的學習和了解面向對象&#xff0c;我會用盡量簡單易懂的描述來展示面向對象的相關知識。并且也準備了一些實用的例子幫助大家更加快速的掌握面向對象的真諦。 jQuery的面向對象實現封裝拖拽簡易版運動框架封裝這…

如何將Wii遙控器用作陀螺儀鼠標

If you have a spare Nintendo Wii remote with the Motion Plus add-on, you can use it to control your Windows PC from across the room. Here’s how to get it working in a couple of easy steps. 如果您有帶Motion Plus附加組件的備用Nintendo Wii遙控器&#xff0c;則…

68.iOS設備尺寸及型號代碼(iPhoneXR/XS)

所有設備型號官網地址&#xff1a; https://www.theiphonewiki.com/wiki/Models iPhone: 機型像素比例像素密度屏幕尺寸機型代碼發布日期iPhone 2g4803203:2163ppi3.5iPhone1,12008.01iPhone 3g4803203:2163ppi3.5iPhone1,22008.06iPhone 3gs4803203:2163ppi3.5iPhone2,12009.0…

php 自帶 web server 如何重寫 rewrite .htaccess

為什么80%的碼農都做不了架構師&#xff1f;>>> <?php // filename: route.php if (preg_match(/\.(?:png|jpg|jpeg|gif|css|js)$/, $_SERVER["REQUEST_URI"])) {return false; } else {include __DIR__ . /index.php; } 更好的寫法&#xff1a; &l…

oracle11g導入錯誤,oracle 11g導入到10g引起的錯誤

環境介紹老環境新環境操作系統&#xff1a;redhat5.8 64位redhat6.4 64位數據庫版本&#xff1a;oracle 10.2.0.4 64位oracle 11.2.0.4 64位背景&#xff1a;之前有一套老的數據庫rac是基于oracle10g搭建&#xff0c;跑了幾年了。現在前端應用程序準備升級&#xff0c;考慮到前…

sci-hub谷歌插件_Google Home Hub具有隱藏屏幕設置菜單

sci-hub谷歌插件You can adjust the brightness or set an alarm on your Google Home Hub with a voice command. But if you’re trying to be quiet or there’s a lot of background noise, you can also do these things using a hidden Screen Settings menu. 您可以使用…

二叉樹的前序、中序、后序遍歷與創建

#include <iostream> #include <string> #include <stack> using namespace std; struct node; typedef node *pNode; struct node { char data; pNode left, right; }; string line; string::iterator it; // 前序擴展序列建立二叉樹 void plan…

flex-2

1、 2、 justify&#xff1a;整理版面 3、 4、歸納 justify-content&#xff1a;flex-start&#xff08;默認&#xff09;、center、flex-end 下面還會提到剩下的兩種項目在主軸上對齊方式&#xff1a; space-between:兩端對齊&#xff08;項目間距離相等&#xff09; space-ar…

TextInput

TextInput /** TextInput 是一個允許用戶在應用中通過鍵盤輸入文本的基本組件* 本組件的屬性提供了多種特性的配置,如自動完成,自動大小寫,占位文字,鍵盤類型等* 常用:* placeholder 占位符* value 輸入框的值* password 是否密文輸入* editable 是否可編輯* retureKeyType …