freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第10章xmldom物件模型-在線瀏覽

2024-12-01 16:46本頁面
  

【正文】 XML 文件內(nèi)容視為一個樹狀結(jié)構(gòu)的節(jié)點,其主要的介面物件,如下表所示: D OM 介面物件 說明D ocu m ent 樹狀結(jié)構(gòu)表示整份 XM L 文件N od e 節(jié)點物件 ,新增 、刪除和修改節(jié)點的物件N od eL ist 節(jié)點清單物件 ,就是指定節(jié)點子節(jié)點的整個樹狀結(jié)構(gòu)E lem ent X ML 元素物件 ,也就是元素節(jié)點T ext X ML 元素內(nèi)容物件 ,也就是內(nèi)容節(jié)點N a m edNode Ma p 元素節(jié)點的屬性集合載入與剖析 XML文件檔案 ? 在 Java 程式載入與剖析 XML 檔案,首先需要匯入 JAXP API 的相關(guān)套件,如下所示: import .*。 import .*。此外因為 XML 檔案是文字檔案,所以需要匯入檔案處理套件,如下所示: import .*。 DocumentBuilderFactory dbf = ()。 Document document = (new File(filename))。 } catch(ParserConfigurationException pe) { ()。 } 設(shè)定剖析器的參數(shù) ? DocumentBuilderFactory 類別提供相關(guān)方法可以利用 configuration 來設(shè)定 XML 剖析器的功能或者特性 ?是否忽略註解文字或空白字元的 XML 元素等 ?例如:設(shè)定剖析器參數(shù)來忽略註解節(jié)點、空白字元(需要配合 DTD) 和不轉(zhuǎn)換 CDATA 節(jié)點,如下所示: // 設(shè)定剖析的參數(shù) (true)。 (false)。 ?參數(shù) true 表示 XML 剖析器需要驗證 XML 文件,預(yù)設(shè)是 DTD 驗證;如果設(shè)為 false,剖析器就不會進(jìn)行文件驗證。 import .*。 public class Ch10_5_1 { public static void main(String[] args) { String filename = 。 try { (true)。 (false)。 DocumentBuilder db = ()。 (XML文件 : + filename + 剖析成功 !)。 } catch(IOException ie) { (檔案處理錯誤 !)。 (())。 } /script ]] book code=P716 titlePHP 5網(wǎng)頁設(shè)計範(fàn)例教本 /title author陳會安 /author price600/price year2020/year /book book code=P679 titleJSP /title author陳會安研究室 /author price650/price year2020/year /book /library Ch10_3_1 修改版 import .*。 import .*。 public class Ch10_3_1 { static Document document。 DocumentBuilderFactory dbf = ()。 try { DocumentBuilder db = ()。 // Document 也是 Node 的一種 (getID(document))。 Node child = (Node)()。 請觀察設(shè)定有無的差異! Ch10_3_1 修改版 // 取得這一層的所有節(jié)點 for ( 。 child = () ) { (getID(child))。 } } catch(SAXException se) {// 剖析過程錯誤 ()。// 剖析器設(shè)定錯誤 } catch(IOException ie) { ()。 switch(type) { case 1: return 元素: + ()。 case 4: return CDATA Section: + ()。 case 8: return 註解: + ()。 case 10: return DOCTYPE: + ((DocumentType) n).getSystemId()。 } } Ch10_3_1 修改版 // 顯示子節(jié)點的遞迴方法 private static void pChild(Node temp,int pos) { if ( () ) { NodeList nodes = ()。 i ()。 printIndent(pos)。 if(type == ) { pChild((i), pos+1)。 for (int i=0。 i++) ()。 ? 取出的每一個節(jié)點都是一個 Node 物件。 ? Note: Document 是 Node 的子類別 Node 節(jié)點物件 ? Node 節(jié)點物件許多方法: ?程式碼使用 getNodeName() 方法取得節(jié)點的節(jié)點名稱 ?若一個節(jié)點 root 擁有多個子節(jié)點,我們可以取得該節(jié)點下的所有子節(jié)點: ? NodeList nodes = ()。 ? 在 NodeList 物件的 getLength() 方法可以取得共擁有多少個節(jié)點。 for (int i=0。 i++) { (元素 : + (i).getNodeName())。 ?程式碼在取得根節(jié)點 root 物件後,使用getChildNodes() 方法取得下一層第 2 個節(jié)點的第 3個子節(jié)點,對應(yīng) XML 元素就是第 2 個 book 元素的第 3個子元素 price。 ? ((i).getTagName())。 ? NOTE: Text 也是 Node 的子類別。因為一個 XML元素可以擁有多個屬性,且每一個屬性名稱都有一個對應(yīng)的屬性值,可以配合 for迴圈來取出所有屬性,如下所示: NamedNodeMap atts = (i).getAttributes()。 j ()。 ( + +())。 } 練習(xí)題 ? 請改寫 使得元素的屬性輸出會直接出現(xiàn)在元素之後,而且屬性名稱之前多了字元 ,範(fàn)例結(jié)果如下: 新增 XML元素和屬性 建立 DOM ? XML DOM 物件模型除了可以存取 XML 文件的節(jié)點外,也可以更改樹狀結(jié)構(gòu) ? 例如:自行新增節(jié)點和屬性來建立新的 XML DOM 物件。 Document document = ()。 ? 如果觀念清楚的話,以下的說明也可以用來為某一已經(jīng)存在的 XML 文件新增節(jié)點。 ?程式碼使用 createElement() 方法建立 Element 元素物件 book,這就是新文件的根元素。 ? insertBefore(newnode, befnode) : 將 newnode節(jié)點插在 befnode 節(jié)點前。 新增 XML元素和屬性 步驟三 第三步:新增元素的內(nèi)容 ? 在元素新增內(nèi)容,就是新增文字值的子節(jié)點,如下所示: Element node = (Element) (code)。 (t)。 新增 XML元素和屬性 步驟四 第四步:新增元素的屬性 ? 在 XML 節(jié)點如果擁有屬性, Element 元素物件可以使用 setAttribute() 方法建立屬性,如下所示: (instock, Y)。 刪除 XML元素和屬性 ? 如果需要刪除節(jié)點或?qū)傩裕覀兛梢允褂? Node 節(jié)點的removeChild() 方法從樹狀結(jié)構(gòu)刪除指定的節(jié)點,如下所示: // 取得 node 的一個子節(jié)點 onechild (onechild)。 變更 XML 元素或者屬性內(nèi)容 ? 如果需要變更節(jié)點或?qū)傩詢?nèi)容,我們使用 setTextContent() 方法,範(fàn)例如下: ? 修改元素內(nèi)容,把 code 的 P761 改成 XXX,如下所示: Element element = ().getFirstChild()。 ? 修改屬性 instock 內(nèi)容: Element element = ().getFirstChild()。 (n)。 ? 如果保留原來的 namespace,把原來的名稱從 library 改成 books,如下所示: // 假設(shè)取得一個 Element 節(jié)點 element Element element = ()。 Ch10_4_4 import .*。 import .*。 public class Ch10_4_4 { static Document document。 DocumentBuilder db = ()。 // 建立根元素 Element root = (book)。 // 新增子元素 code Element node = (code)。 ((P761))。 (node)。 Ch10_4_4 // 新增 author元素 Element newNode = (author)。 Node newText = (陳會安 )。 // 新增屬性 node=(Element)().getNextSibling()。 (建立的 XML文件 : )。 // 刪除 author元素 ((Element) (author).item(0))。 (instock)。 printXML(root)。 NodeList nodes = ()。 i ()。 (/+(i).getFirstChild().getNodeValue())。 for (int j = 0。 j++) { Node att = (j)。 (/+())。 (根元素 : +())。 for ( int i=0。 i++ ) { (元素 : + (i).getNodeName())。 // 顯示指定元素的屬性值 if ((i).hasAttributes()) { NamedNodeMap atts = (i).getAttributes()。 j ()。 ( + +())。 } } } ()。 DTD 驗證 ? JAXP API 版只支援 DTD 驗證,並不支援 XML Schema( )。 ?JDK supports JAXP API ?JDK supports JAXP API ?JDK supports JAXP API TestXSD // 驗證 XML Schema import .*。 import .*。 public class TestXSD { public static void main(String[] args) { if( != 1) { (Usage: java TestXSD )。 } String xmlFile = args[0]。 } catch (Exception e) { ( ().get
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1