日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xml教程

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xml教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XML 文檔對象模型定義訪問和操作XML文檔的標準方法。

DOM 將 XML 文檔作為一個樹形結構,而樹葉被定義為節點。

XML DOM 把 XML 文檔視為一種樹結構。這種樹結構被稱為節點樹。

可通過這棵樹訪問所有節點。可以修改或刪除它們的內容,也可以創建新的元素。

XML DOM 定義了訪問和處理 XML 文檔的標準方法。

XML DOM 是 XML Document Object Model 的縮寫,即 XML 文檔對象模型。

?

xml每個成分都是節點、

根據 DOM,XML 文檔中的每個成分都是一個節點。

DOM 是這樣規定的:

  • 整個文檔是一個文檔節點
  • 每個 XML 標簽是一個元素節點
  • 包含在 XML 元素中的文本是文本節點
  • 每一個 XML 屬性是一個屬性節點
  • 注釋屬于注釋節點

?

看一個例子

<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book category="children"><title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book><book category="cooking"><title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book><book category="web"><title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book><book category="web"><title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book></bookstore>

第一個 <book> 節點有四個節點:<title>, <author>, <year> 以及 <price>,其中每個節點都包含一個文本節點,"Harry Potter", "J K. Rowling", "2005" 以及 "29.99"。

注意文本存儲在文本幾點當中

在這個例子中:<year>2005</year>,元素節點 <year>,擁有一個值為 "2005" 的文本節點。

"2005"?不是?<year> 元素的值!

在上面的 XML 中,<title> 元素是 <book> 元素的第一個子節點,而 <price> 元素是 <book> 元素的最后一個子節點。

此外,<book> 元素是 <title>、<author>、<year> 以及 <price> 元素的父節點。

?

瀏覽器都內建了供讀取和操作 XML 的 XML 解析器。

解析器把 XML 讀入內存,并把它轉換為可被 JavaScript 訪問的 XML DOM 對象。

?

所有的解析器都含有遍歷 XML 樹、訪問、插入及刪除節點的函數。

?

js

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");//微軟的 XML 解析器
/* xmlDoc= document.implementation.createDocument("","",null); //在 Firefox 及其他瀏覽器中的 XML 解析器 */ xmlDoc.async="false"; xmlDoc.load("books.xml"); //loadXML()?方法用于加載字符串(文本),而?load()?用于加載文件。
  • 第一行創建空的微軟 XML 文檔對象
  • 第二行關閉異步加載,這樣可確保在文檔完整加載之前,解析器不會繼續執行腳本
  • 第三行告知解析器加載名為 "books.xml" 的文檔

Internet Explorer 使用?loadXML()?方法來解析 XML 字符串,而其他瀏覽器使用?DOMParser?對象。

例如:

parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
  • 第一行創建一個空的 XML 文檔對象
  • 第二行告知解析器加載名為 txt 的字符串

跨瀏覽器例子

try //Internet Explorer {xmlDoc=new ActiveXObject("Microsoft.XMLDOM");} catch(e){try //Firefox, Mozilla, Opera, etc. {xmlDoc=document.implementation.createDocument("","",null);}catch(e) {alert(e.message)}} try {xmlDoc.async=false;xmlDoc.load("books.xml");document.write("xmlDoc is loaded, ready for use");} catch(e) {alert(e.message)

出于安全方面的原因,現代的瀏覽器不允許跨域的訪問。

這意味著,網頁以及它試圖加載的 XML 文件,都必須位于相同的服務器上。

假如你打算在自己的網頁上使用上面的例子,則必須把 XML 文件放到自己的服務器上。否則,xmlDoc.load() 將產生錯誤 "Access is denied"。

?

XML DOM 含有遍歷 XML 樹以及訪問、插入、刪除節點的方法(函數)。

然后,在訪問并處理 XML 文檔之前,必須把它載入 XML DOM 對象。

?

一些典型的 DOM 屬性:

  • x.nodeName - x 的名稱
  • x.nodeValue - x 的值
  • x.parentNode - x 的父節點
  • x.childNodes - x 的子節點
  • x.attributes - x 的屬性節點

注釋:在上面的列表中,x 是一個節點對象。

  • x.getElementsByTagName(name) - 獲取帶有指定標簽名稱的所有元素
  • x.appendChild(node) - 向 x 插入子節點
  • x.removeChild(node) - 從 x 刪除子節點

注釋:在上面的列表中,x 是一個節點對象。

三個重要的 XML DOM 節點屬性是:

  • nodeName
  • nodeValue
  • nodeType

?

nodeName 屬性規定節點的名稱。

  • nodeName 是只讀的
  • 元素節點的 nodeName 與標簽名相同
  • 屬性節點的 nodeName 是屬性的名稱
  • 文本節點的 nodeName 永遠是 #text
  • 文檔節點的 nodeName 永遠是 #document

nodeValue 屬性規定節點的值。

  • 元素節點的 nodeValue 是 undefined
  • 文本節點的 nodeValue 是文本自身
  • 屬性節點的 nodeValue 是屬性的值

?

例子

?

<?php $doc = new DOMDocument('1.0','utf-8');$content = file_get_contents('http://feed.cnblogs.com/blog/u/530411/rss');$doc->loadXML($content);$ts = $doc->getElementsByTagName('entry'); $arr=array(); ///*獲取內容 原文鏈接 作者姓名 摘要 修改時間*/ foreach ($ts as $value) {//鏈接$writer= '作者'.$value->getElementsByTagName('author')->item(0)->childNodes->item(1)->nodeValue.'<br/>';$import='文章摘要'.$value->getElementsByTagName('content')->item(0)->textContent.'<br/>';$pushtime='發布時間'.$value->getElementsByTagName('published')->item(0)->textContent; $arr[]=array( 'writer'=>$writer, 'import'=>$import, 'pushtime'=>$pushtime); }print_r($arr);

在 XML DOM 中,節點的關系被定義為節點的屬性:

  • parentNode
  • childNodes
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

?

節點操作:

獲取屬性值

?txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

?

?

在 DOM 中,每種成分都是節點。元素節點沒有文本值。

元素節點的文本存儲在子節點中。該節點稱為文本節點。

獲取元素文本的方法,就是獲取這個子節點(文本節點)的值。

?

設置屬性值?

x[0].setAttribute("category","child");
//設置節點的某個屬性的值 y=x.getAttributeNode("category");
//現獲取該屬性 設置屬性 y.nodeValue="child";

轉載于:https://www.cnblogs.com/webcyh/p/11287872.html

總結

以上是生活随笔為你收集整理的xml教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。