麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

xml中的dtd約束的加深了解以及dom的解析方式和jaxp解析xml文檔 ——Web部分第七天

2019-11-14 12:59:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

xml中的dtd約束的加深了解以及dom的解析方式和jaxp解析xml文檔 ——Web部分第七天

dtd約束的加深

* 語(yǔ)法<!ATTLIST 元素名稱 屬性名稱 屬性類型 屬性的約束>* 屬性類型包括: - CDATA : 字符串 - 枚舉 : 如(aa|bb|cc)只能出現(xiàn)其中一個(gè) - ID : 值只能是字母或者下劃線開(kāi)頭<!ATTLIST name ID3 CDATA #REQUIRED><!ATTLIST name ID3 (aa|bb|cc) #REQUIRED><!ATTLIST name ID3 ID #REQUIRED>* 屬性的約束 - #REQUIRED : 屬性必須存在 - #IMPLIED : 屬性可有可無(wú) - FIXED : 表示一個(gè)固定值如#FIXED "aaa" , 屬性必須設(shè)置這個(gè)固定值 ; - 直接值 : 不寫屬性,使用直接值, 寫了屬性,就用那個(gè)值。(相當(dāng)于默認(rèn)值)* 定義實(shí)體 - 語(yǔ)法<!ENTITY 實(shí)體名稱 "實(shí)體內(nèi)容"> - 引用時(shí) &實(shí)體名稱;(注:包括分號(hào))。

- 定義實(shí)體要寫在內(nèi)部dtd里面,否則某些瀏覽器解析不到。

xml的解析方式

* xml的解析方式dom和sax(同html相同),三家公司提供了dom解析器 - jaxp(java相關(guān)) , dom4j(實(shí)際開(kāi)發(fā)) , jdom 。

jaxp解析xml文檔

* 包 javax.xml.perser , javax.xml.transform , org.w3c.dom ;* 下為dom的解析方式,添加刪除的原理和js相同,個(gè)別方法名不同。package com.xml.test;import java.io.IOException;import java.security.acl.Permission;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.Text;import org.xml.sax.SAXException;public class xmlTest { public static void main(String [] args) throws Exception{ //test01(); //test02(); //test03() ; //test04() ; //test05() ; test06() ; } /* * 遞歸遍歷所有節(jié)點(diǎn) */ PRivate static void test06() throws Exception { Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse("src/person.xml") ; Node node = document.getElementsByTagName("person").item(0) ; listAll(node) ; } private static void listAll(Node node) { if (node.getNodeType() == Node.ELEMENT_NODE ) { System.out.println(node.getNodeName()) ; } NodeList nodeList = node.getChildNodes() ; for(int i = 0 ; i < nodeList.getLength() ; i++ ){ Node nodeText = nodeList.item(i) ; if (nodeText.getNodeType() == Node.TEXT_NODE) { System.out.println(nodeText.getTextContent()); } listAll(nodeText) ; } } /* * 刪除節(jié)點(diǎn)sex */ private static void test05() throws Exception { Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse("src/person.xml") ; Node node = document.getElementsByTagName("p1").item(0) ; Node node2 = document.getElementsByTagName("sex").item(0) ; node.removeChild(node2) ; Transformer transformer = TransformerFactory.newInstance().newTransformer() ; transformer.transform(new DOMSource(document) , new StreamResult("src/person.xml")) ; } /* * 修改xml標(biāo)簽下的內(nèi)容 * 在p1的標(biāo)簽下修改<sex>nv</sex> nv為nan */ private static void test04() throws Exception { Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse("src/person.xml") ; Node node = document.getElementsByTagName("sex").item(0) ; node.setTextContent("nan") ; Transformer transformer = TransformerFactory.newInstance().newTransformer() ; transformer.transform(new DOMSource(document) , new StreamResult("src/person.xml")); } /* * 在p1的標(biāo)簽下添加<sex>nv</sex> * * 重點(diǎn): 添加完成后的回寫動(dòng)作。 * * java的操作是在內(nèi)存中完成的,并沒(méi)有回寫到文件。 */ private static void test03() throws Exception { Document document = DocumentBuilderFactory.newInstance() .newDocumentBuilder().parse("src/person.xml") ; Element sex = document.createElement("sex") ; Text sexText = document.createTextNode("nv") ; sex.appendChild(sexText) ; NodeList nodeList = document.getElementsByTagName("p1") ; nodeList.item(0).appendChild(sex) ; //回寫操作 Transformer transform = TransformerFactory.newInstance().newTransformer() ; transform.transform(new DOMSource(document) , new StreamResult("src/person.xml")) ; } /* * 查詢某一個(gè)節(jié)點(diǎn)。 */ private static void test02() throws Exception { DocumentBuilder documentBuilder = DocumentBuilderFactory .newInstance().newDocumentBuilder() ; Document document = documentBuilder.parse("src/Person.xml") ; NodeList nodeList = document.getElementsByTagName("name") ; Node node = nodeList.item(0) ; System.out.println(node.getTextContent()) ; } /* * 遍歷xml */ private static void test01() throws Exception { //創(chuàng)建解析器工廠實(shí)例 DocumentBuilderFactory dbd = DocumentBuilderFactory.newInstance() ; //通過(guò)解析器工廠實(shí)例得到解析器 DocumentBuilder db = dbd.newDocumentBuilder() ; //通過(guò)解析器解析文檔,得到Document對(duì)象 Document document = db.parse("src/person.xml") ; //得到標(biāo)簽節(jié)點(diǎn) NodeList nodeList = document.getElementsByTagName("name") ; for(int i = 0 ; i < nodeList.getLength() ; i++ ){ //得到Node里面的值 Node node = nodeList.item(i) ; String str = node.getTextContent() ; System.out.println(str); } }}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: av不卡免费在线 | 久久久久久久久浪潮精品 | 国产色视频在线观看免费 | 黄色片观看 | 91av在线免费播放 | 国产精品久久久久久久久久久久午夜 | 91av在线免费播放 | 国产欧美在线一区二区三区 | 亚洲草逼视频 | a级毛片免费观看在线播放 日本aaa一级片 | 久草在线最新 | 91九色视频在线播放 | 黄色男女视频 | 全黄性色大片 | 亚洲精品一区二区三区大胸 | 国产精品久久久久久久久久久久久久久久 | 91精品国产综合久久男男 | 美女一级毛片 | 最新一级毛片 | 欧美高清在线精品一区二区不卡 | 婷婷久久久久久 | 一级性色 | 国内精品伊人久久 | 久草在线网址 | 日韩黄色av网站 | 色柚视频网站ww色 | 男男羞羞视频网站国产 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 中文字幕在线永久 | 免费网站看毛片 | 一级毛片免费高清 | 欧产日产国产精品99 | 亚洲3p激情在线观看 | 一区二区三区黄色 | 亚洲亚色 | 国产精品久久久久一区二区 | 成人在线观看一区 | 美女又黄又www | xp123精品视频 | 99精品国产视频 | 在线播放视频一区二区 |