版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章DOM解析器8.1DOM解析器8.2節(jié)點的類型8.3Document節(jié)點8.4Element節(jié)點8.5Text節(jié)點8.6CDATASection節(jié)點第8章DOM解析器8.7Attr節(jié)點8.8DocumentType節(jié)點8.9處理空白8.10驗證規(guī)范性和有效性8.11使用DOM生成XML文件8.12XML與JSP的結(jié)合基于DOM的解析器稱為DOM解析器。DOM解析器解析XML文件的最大特點是把整個XML文件全部加載到內(nèi)存中,在內(nèi)存中形成一個與XML文件結(jié)構(gòu)相對應(yīng)的節(jié)點樹。然后依據(jù)節(jié)點的子孫關(guān)系來遍歷數(shù)據(jù)。通過DOM解析器處理XML文件效率高,但是,十分消耗系統(tǒng)的資源,比較適合復(fù)雜但相對較小的文件。
8.1DOM解析器8.1.1DOM標準8.1.2認識DOM解析器返回DOM標準DOM是DocumentObjectModel文檔對象模型的縮寫,是W3C制定的一套規(guī)范。依據(jù)DOM規(guī)范(/DOM/),DOM是一種與瀏覽器、平臺、語言無關(guān)的接口。各種語言可以按照DOM規(guī)范去實現(xiàn)這些接口,給出解析文件的解析器。DOM規(guī)范中所指的文件相當廣泛,其中包括XML文件以及HTML文件。DOM有3個版本:
Level:包括對XML1.0和HTML的支持,每個HTML元素被表示為一個接口。它包括用于添加、編輯、移動和讀取節(jié)點中包含的信息的方法等。Level2:包括了更廣泛的W3C推薦技術(shù),比如層疊樣式表(CSS)和
名稱空間(XMLNamespaces),允許開發(fā)人員檢測和使用可能適用于某個節(jié)點的名稱空間信息。Level2還支持W3C所謂的“事件”,比如一個文件能對諸如鼠標移動之類的“事件”做出反應(yīng)。
Level3:包括對創(chuàng)建Document對象(以前的版本將這個任務(wù)留給實現(xiàn),使得創(chuàng)建通用應(yīng)用程序很困難)的更好支持、增強的名稱空間支持,以及用來處理文檔加載和保存、驗證以及XPath的新模塊;XPath是在XSL轉(zhuǎn)換(XSLTransformation)以及其他XML技術(shù)中用來選擇節(jié)點的手段。
返回認識DOM解析器(1)本書主要介紹Sun公司的DOM解析器,該解析器是支持Level3的解析器。注意區(qū)分DOM解析器、JDOM和DOM4J。Sun公司發(fā)布的SDK1.5中包含了DOM解析器解析XML文件所需要的API(JavaAPIforXMLParsing,JAXP),JAXP實現(xiàn)了DOM規(guī)范的Java語言綁定。SDK1.5可以在Sun公司網(wǎng)站()上免費下載。在JAXP中,DOM解析器是一個DocumentBuilder類的實例,下面介紹一下如何創(chuàng)建一個DOM解析器。
認識DOM解析器(2)(1)建立一個解析器工廠,利用這個工廠來獲得一個具體的解析器對象:DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();使用DocumentBuilderFacotry的目的是為了創(chuàng)建與具體解析器無關(guān)的程序,當DocumentBuilderFactory類的靜態(tài)方法newInstance()被調(diào)用時,它根據(jù)一個系統(tǒng)變量來決定具體使用哪一個解析器。(2)factory對象調(diào)用它的靜態(tài)方法newDocumentBuilder()獲得一個DocumentBuilder對象,這個對象就是DOM解析器。認識DOM解析器(3)當獲得一個builder對象(DOM解析器)之后,就可以調(diào)用該對象的publicDocumentparse(Filefile)方法來解析文件。解析的內(nèi)容以對象的形式返回,該對象是實現(xiàn)了Document接口的一個實例,稱為Document對象。
Documentdocument=builder.parse(newFile("01.xml"));
builder對象除了調(diào)用publicDocumentparse(Filefile)方法解析文件外,還可以調(diào)用其它兩個方法:
publicDocumentparse(InputStreamin)publicDocumentparse(Stringuri)
返回8.2節(jié)點的類型8.2.1Node接口8.2.2NodeList接口8.2.3NamedNodeMap接口Document節(jié)點Element節(jié)點DocumentType節(jié)點Element節(jié)點Text節(jié)點CDATASection節(jié)點返回Node接口(1)DOM規(guī)范中很多接口都是從Node接口繼承而來,在DOM規(guī)范中把XML文件的每一個標記、屬性、注釋、文本內(nèi)容等都看作節(jié)點。一個Node對象代表了一個類型的節(jié)點。DOM規(guī)范中,不同類型的節(jié)點采用不同的整數(shù)加以區(qū)分。為了保證日后能夠容易地對節(jié)點類型進行擴充,W3C保留了1~200之間的整數(shù),作為不同節(jié)點類型的定義。具體對應(yīng)關(guān)系見下表:節(jié)點類型對應(yīng)的整數(shù)表示常量標記節(jié)點(Element)1ELEMENT_NODE屬性節(jié)點(Attr)2ATTRIBUTE_NODE文本節(jié)點(Text)3TEXT_NODECDATA節(jié)點(CDATASection)4CDATA_SECTION_NODE實體引用節(jié)點(EntityReference)5ENTITY_REFERENCE_NODE實體節(jié)點(Entity)6ENTITY_NODE處理指令節(jié)點(ProcessingInstruction)7PROCESSING_INSTRUCTION_NODEComment節(jié)點8COMMENT_NODEDocument節(jié)點9DOCUMENT_NODE文檔類型節(jié)點(DocumentType)10DOCUMENT_TYPE_NODE文檔片段節(jié)點(DocumentFragment)11DOCUMENT_FRAGMENT_NODENotation節(jié)點12NOTATION_NODENode接口(2)Node接口定義了所有類型的節(jié)點都具有的屬性和方法。見下表:方法功能描述getNodeName()獲取當前節(jié)點的名稱getNodeValue()獲取當前節(jié)點的值setNodeValue(Stringarg)設(shè)置當前節(jié)點的值getNodeType()獲取當前節(jié)點的類型getChildNodes()獲取當前節(jié)點的所有子節(jié)點,返回NodeList對象getFirstChild()獲取當前節(jié)點的第一個子節(jié)點getLastChild()獲取當前節(jié)點的最后一個子節(jié)點getPreviousSibling()獲取當前節(jié)點的前一個兄弟節(jié)點getNextSibling()獲取當前節(jié)點的后一個兄弟節(jié)點getparentNode()獲取當前節(jié)點的父節(jié)點getAttributes()獲得當前節(jié)點的所有屬性,返回NamedNodeMap對象appendChild(Nodearg)在當前節(jié)點的所有子節(jié)點之后添加新節(jié)點arghasChildNodes()判斷當前節(jié)點是否有子節(jié)點insertBefore(Nodearg1,Nodearg2)把節(jié)點arg2插入到當前節(jié)點的子節(jié)點arg1之前removeChild(Nodearg)從當前節(jié)點的子節(jié)點中刪除arg節(jié)點replaceChild(Nodearg1,Nodearg2)用arg2節(jié)點替換當前節(jié)點的子節(jié)點arg1getNamespaceURI()獲得Namespace的URIhasAttributes()判斷當前節(jié)點是否具有屬性getTextContent()獲取當前節(jié)點的文本內(nèi)容isSameNode(Nodearg)判斷當前節(jié)點與arg是否是同一個節(jié)點isEqualNode(Nodearg)判斷當前節(jié)點與arg是否相等返回NodeList接口
NodeList接口提供了對節(jié)點集合的抽象定義,用于表示有順序關(guān)系的一組節(jié)點。NodeList中的每一個節(jié)點都可以通過索引來訪問,索引值0表示第一個節(jié)點。NodeList接口有兩個常用的方法,見下表:方法名稱功能描述getLength()返回NodeList的長度item(intindex)返回第index個節(jié)點返回NamedNodeMap接口通過NamedNodeMap接口中的方法可以方便地對標記的屬性進行維護和管理。NamedNodeMap中常用的方法見下表:方法名稱功能描述getLength()標記中所包含的屬性個數(shù)item(intindex)屬性集合中的第index個屬性getNameItem(Nodearg)獲得指定名稱的節(jié)點setNameItem(Nodearg)設(shè)置指定名稱的節(jié)點,如果節(jié)點不存在,就添加一個新節(jié)點removeNameItem(Nodearg)刪除指定名稱的節(jié)點getNameItemNS(StringnamespaceURI,Stringlocalname)獲得指定名稱空間和指定名稱的節(jié)點setNameItemNS(StringnamespaceURI,Stringlocalname)覆蓋指定名稱空間和指定名稱的節(jié)點,如果節(jié)點不存在,就添加一個新節(jié)點返回8.3Document節(jié)點(1)Document節(jié)點代表了整個XML文件,XML文件的所有內(nèi)容都被封裝在一個Document節(jié)點內(nèi)。Document對象提供了對文檔中數(shù)據(jù)進行訪問的入口,應(yīng)用程序可以從該節(jié)點的子孫節(jié)點中獲得整個XML文件的數(shù)據(jù)。
Document類型節(jié)點的兩個子節(jié)點類型是DocumentType類型和Element類型。
Document節(jié)點常用的方法見下表:方法功能描述getDocumentElement()返回當前節(jié)點的Element節(jié)點getDoctype()返回當前節(jié)點的DocumentType子節(jié)點getElementByTagName(Stringname)返回一個NodeList對象,該對象由參數(shù)name指定的節(jié)點的Element類型子孫節(jié)點組成。getElementByTagNameNS(StringnamespaceURI,Stringlocalname)返回一個NodeList對象,該對象由參數(shù)localname指定的節(jié)點的Element類型子孫節(jié)點組成,localname的名稱空間由參數(shù)namespaceURI指定8.3Document節(jié)點(2)Document節(jié)點常用的方法續(xù)表方法功能描述getElementById(Stringid)方法,返回一個NodeList對象,該對象由給定ID的節(jié)點的Element類型子孫節(jié)點組成getXmlEncoding()返回XML文件使用的編碼getInputEncoding()返回輸入編碼getXmlStandalone()返回XML文件聲明中的standalone屬性的值getXmlVersion()返回XML文件聲明中的version屬性值setDocumentURI(StringdocumentURI)設(shè)置DocumenURIsetXmlVersion(StringmxlVersion)設(shè)置XML的版本createElement(Stringname)創(chuàng)建一個Element節(jié)點,節(jié)點名稱由name參數(shù)指定createAttribute(Stringname)創(chuàng)建一個Attr節(jié)點,屬性名稱由name參數(shù)指定,然后利用setAttributeNode方法設(shè)置為某個節(jié)點的屬性createCDATASection(Stringdata)創(chuàng)建一個CDATASection節(jié)點createTextNode(Stringtext)創(chuàng)建一個具有指定內(nèi)容的文本節(jié)點返回8.4Element節(jié)點
Element節(jié)點是Document的子孫節(jié)點,表示標記節(jié)點,代表的常量是ELEMENT_NODE。Element節(jié)點可以是Element的子節(jié)點。Element節(jié)點可以使用如下表所示的方法來獲得相關(guān)的數(shù)據(jù)。
方法功能描述getTagName()返回該節(jié)點的名稱,即對應(yīng)XML文件的標記名稱getAttribute(Stringname)返回該節(jié)點的對應(yīng)屬性的值,屬性名稱由參數(shù)name指定。即對應(yīng)XML文件標記的屬性值getElementByTagName(Stringname)返回一個NodeList對象,該對象由該節(jié)點的Element類型的子孫節(jié)點組成,子孫節(jié)點的名稱由參數(shù)name指定getElementByTagNameNs(StringnamespaceURI,StringlocalName)返回一個NodeList對象,該對象由該節(jié)點的Element類型的子孫節(jié)點組成,子孫節(jié)點的名稱由參數(shù)localName指定,名稱空間由參數(shù)namespaceURI指定getAttributeNode(Stringname)返回屬性節(jié)點hasAttribute(Stringname)判斷該節(jié)點是否具有某個屬性,屬性名稱由參數(shù)name指定hasAttributeNS(StringnamespaceURI,StringlocalName)判斷該節(jié)點是否具有某個屬性,屬性名稱由參數(shù)name指定,名稱空間由參數(shù)namespaceURI指定removeAttribute(Stringname)刪除name屬性removeAttributeNode(AttroldAttr)刪除當前節(jié)點的oldAttr屬性setAttribute(Stringname,Stringvalue)設(shè)置name屬性的值setAttributeNode(AttrnewAttr)為當前的節(jié)點設(shè)置屬性返回8.5Text節(jié)點(1)Text節(jié)點用來表示XML文件的文本內(nèi)容,Text節(jié)點代表的常量是TEXT_NODE。Text節(jié)點可以是Element節(jié)點的子節(jié)點。
Text節(jié)點不僅包括標記的文本內(nèi)容,還包括標記之間的空白。例如:<root><element1>text1</element1><element2>text2</element2></root>
root節(jié)點共有7個子孫節(jié)點,其中包括2個Element類型子節(jié)點:<element1>和<element2>。3個Text類型子節(jié)點:<root>與<element1>之間的空白、</element1>與<element2>之間的空白和</element2>與</root>之間的空白。2個Text類型的孫節(jié)點:<element1>與</element1>之間的文本“text1”和<element2>與</element2>之間的文本“text2”。
8.5Text節(jié)點(2)獲取Text類型的節(jié)點中的文本可以使用下面的方法:
StringgetWholeText()獲取的數(shù)據(jù)包括所有的內(nèi)容,包括其中的空白。對于Text類型的節(jié)點使用方法StringgetNodeName()返回的結(jié)果是:
#text
返回8.6CDATASection節(jié)點(1)
CDATASection節(jié)點對應(yīng)XML文件的CDATA段,表示CDATASection節(jié)點的常量是CDATA_SECTION_NODE,CDATASection節(jié)點可以是Element節(jié)點的子節(jié)點。
如果一個XML文件中含有CDATA段,在解析時,節(jié)點的計算辦法有所特別,例如,XML文件的代碼如下:
<?mxlversion="1.0"?><root>text1<![CDATA[cdata1]]>text2<![CDATA[cdata2]]>text3</root>
獲取CDATASection類型的節(jié)點中的文本使用方法:
StringgetWholeText()
8.6CDATASection節(jié)點(2)
前面的XML文件節(jié)點的計算辦法是按照各節(jié)點在XML文件中出現(xiàn)的順序先后排列:text1<![CDATA[cdata1]]>text2<![CDATA[cdata2]]>text3Text類型節(jié)點,節(jié)點的內(nèi)容包括:text1、cdata1、text2、cdata2、text3。
CDATASection類型節(jié)點,節(jié)點的內(nèi)容包括:cdata1、text2、cdata2、text3。
Text類型節(jié)點,節(jié)點的內(nèi)容包括:text2、cdata2、text3。
CDATASection類型節(jié)點,節(jié)點的內(nèi)容包括:cdata2、text3。
Text類型節(jié)點,節(jié)點的內(nèi)容包括:text3。
返回8.7Attr節(jié)點(1)
Attr節(jié)點表示屬性節(jié)點,對應(yīng)XML文件中標記的屬性,對應(yīng)的常量是ATTRIBUTE_NODE。在XML文件中,屬性是作為表示的附加信息,用于補充描述標記,不是標記的子標記。在DOM中,Attr對象是包含在Element對象中的,所以,Attr節(jié)點不是Element節(jié)點的子節(jié)點。
Attr對象常用的方法見下表:方法功能描述getName()返回屬性的名稱getValue()返回屬性值setValue()設(shè)置屬性值getOwnerElement()返回屬性所屬的Element對象8.7Attr節(jié)點(2)要獲得Element節(jié)點的Attr節(jié)點需要Element節(jié)點調(diào)用getAttribute()方法,該方法返回一個NamedNodeMap對象,NamedNodeMap對象由節(jié)點組成,這些節(jié)點可以轉(zhuǎn)換為Attr節(jié)點。
//獲取節(jié)點的屬性列表
NamedNodeMapattrMap=node.getAttributes();//循環(huán)取出每一個屬性for(intj=0;j<attrMap.getLength();j++){//轉(zhuǎn)換為屬性節(jié)點
AttraNode=(Attr)attrMap.item(j);//輸出屬性名稱和屬性值System.out.print(aNode.getName()+“="+aNode.getValue()+";");}
返回8.8DocumentType節(jié)點8.8.1獲取DTD的基本信息8.8.2獲取實體
DocumentType類型節(jié)點是Document節(jié)點的一個子節(jié)點。
DocumentType類型節(jié)點對應(yīng)XML文件所關(guān)聯(lián)的DTD文件,通過DocumentType節(jié)點的子孫關(guān)系可以分析并獲得DTD文件中的數(shù)據(jù)。通過Document節(jié)點調(diào)用getDoctype()方法可以獲得該節(jié)點的DocumentType類型的子節(jié)點。DocumentType類型節(jié)點用常量DOCUMENT_TYPE_NODE表示。
返回獲取DTD的基本信息如果是關(guān)聯(lián)內(nèi)部的DTD,則DocumentType類型的節(jié)點可以調(diào)用getInternalSubset()方法返回內(nèi)部DTD的內(nèi)容。
如果一個文件關(guān)聯(lián)一個外部的DTD
,則返回DOCTYPE聲明中的相關(guān)信息,假設(shè)有如下的DOCTYPE聲明:
<!DOCTYPErootPUBLIC“-//ISO1234567//sunsang//ForXml//Ch”“01.dtd”>
調(diào)用方法:getName()
getPublicld()
getSystemId()
返回返回返回根標記的名字“root”
正式公用標識符“-//ISO1234567//sunsang//ForXml//Ch”
外部DTD的名字“01.xml”
返回獲取實體解析器在解析XML文件時,會將DTD中的實體封裝為Eneity節(jié)點,Eneity節(jié)點用ENTITY_NODE常量表示。DocumentType類型節(jié)點調(diào)用方法getEntities()方法可以獲得全部的實體。該方法返回NamedNodeMap類型的對象,該對象由節(jié)點組成,這些節(jié)點可以轉(zhuǎn)換為Entity類型的節(jié)點。
有兩個方法可以獲得實體的相關(guān)信息:getTextContent()
返回實體的內(nèi)容。
getInputEncoding()如果是外部實體,返回的是解析實體所使用的編碼。如果是內(nèi)部實體,返回null。返回8.9處理空白(1)在編寫XML文件時,為了使文件變得美觀和易于閱讀,通常習慣采用代碼縮進的方式,縮進代碼就需要在行的前面加上空白區(qū)域。例如:
<persions><persion><name>xiaowang</name><sex>male</sex><age>25</age></persion></persions>
523416這段代碼就包含了6處沒有實際意義的空白,解析器在解析的時候并不考慮這么多,解析器會把這些空白全部當成文本數(shù)據(jù)。所以,輸出來的解析數(shù)據(jù)包含了空白。如圖:8.9處理空白(2)如果想要讓解析器忽略這些縮進的空白區(qū)域,首先,XML文件必須是有效的XML文件,即在文檔類型定義文件中規(guī)定了標記是只含有子標記或只含有文本內(nèi)容。然后,在獲得DOM解析器之前,需要設(shè)置解析器忽略空白:
8.9處理空白(3)……//創(chuàng)建解析工廠DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();//設(shè)置忽略縮進空白factory.setIgnoringElementContentWhitespace(true);//獲得解析器DocumentBuilderbuilder=factory.newDocumentBuilder();
……解析出來的數(shù)據(jù)如圖所示:
返回8.10驗證規(guī)范性和有效性
DOM解析器默認驗證XML文件的規(guī)范性,要驗證XML文件的有效性,需要在建立解析器之前,通過DocumentBuilderFactory對象來設(shè)置:DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();factory.setValidating(true);
然后再建立相應(yīng)的解析器,關(guān)于驗證XML文件的有效性,在前面的章節(jié)中已經(jīng)做了介紹,有關(guān)實例參見第3章3.2節(jié)和第4章4.8節(jié)。
返回8.11使用DOM生成XML文件(1)
使用DOM生成XML文件的步驟如下:
需要得到一個Document對象節(jié)點。獲得Document節(jié)點有兩種方法:第一,通過DocumentBuilder對象調(diào)用parse()方法返回一個Document節(jié)點;第二,通過DocumentBuilder對象調(diào)用newDocument()方法生成一個Document節(jié)點。應(yīng)用程序?qū)ocument節(jié)點進行修改,在內(nèi)存中建立一個節(jié)點樹。使用Transformer對象將內(nèi)存中的節(jié)點樹轉(zhuǎn)變成一個XML文件。
8.11使用DOM生成XML文件(2)
使用Transformer對象將一個Document節(jié)點轉(zhuǎn)變成一個XML文件需要經(jīng)過如下步驟:
需要建立一個TransformerFactory工廠對象實例:
TransformerFactorytFactory=TransformerFactory.newInstance();
tFactory對象調(diào)用newTransformer()方法得到一個Transformer對象實例:
Transformertransformer=tFactory.newTransformer();
將Document對象封裝在一個DOMSource對象中:
DOMSourcesource=newDOMSource(document);
建立一個StreamResult對象,用于封裝XML文件:
FileOutputStreamout=newFileOutputStream(newFile(“test.xml”));StreamResultresult=newStreamResult(out);
Transformer對象調(diào)用transforme()方法進行轉(zhuǎn)換:
transformer.transform(source,result);
8.11使用DOM生成XML文件(3)
通過前面的步驟就可以獲得XML文件。下表列出了各個接口中常用的用于修改Documen節(jié)點的方法。
接口名稱方法名稱功能描述NodeappendChild(NodenewChild)向當前節(jié)點添加一個新節(jié)點,新節(jié)點由參數(shù)newChild指定removeChild(NodeoldChild)從當前節(jié)點刪除由參數(shù)oldChild指定的節(jié)點,replaceChild(NodenewChild,NodeoldChild)用參數(shù)newChild指定的節(jié)點替換由參數(shù)oldChild指定的節(jié)點Element(繼承Node接口的方法)removeAttributeNode(AttroldAttr)刪除Element節(jié)點的屬性setAttribute(Stringname,Stringvalue)為Element節(jié)點添加一個屬性,如果該屬性已經(jīng)存在,將用新屬性替換原來的屬性Text(繼承Node接口的方法)replaceWholeText(Stringcontent)用新的內(nèi)容替換當前Text節(jié)點的內(nèi)容appendData(Stringarg)向當前的Text節(jié)點追加文本內(nèi)容insertData(intoffset,Stringarg)向當前的Text節(jié)點插入文本內(nèi)容,插入的位置由參數(shù)offset指定,表示第幾個字符之后deleteData(intoffset,intcount)刪除從第offset個字符后的count個字符replaceData(intoffset,intcount,Stringarg)用arg指定的內(nèi)容替換從第offset個字符后的count個字符返回8.12XML與JSP的結(jié)合(1)
JSP簡介JSP(JavaServerPages)稱為Java服務(wù)器頁面,是由SUN公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準。J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工職業(yè)學院《JavaWEB開發(fā)技術(shù)課程綜合實踐》2023-2024學年第一學期期末試卷
- 廣東科貿(mào)職業(yè)學院《大學職業(yè)發(fā)展與就業(yè)指導(dǎo)4》2023-2024學年第一學期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學院《高等數(shù)學II》2023-2024學年第一學期期末試卷
- 廣東機電職業(yè)技術(shù)學院《中學英語》2023-2024學年第一學期期末試卷
- 廣東環(huán)境保護工程職業(yè)學院《工程荷載與可靠度設(shè)計方法》2023-2024學年第一學期期末試卷
- 廣東財貿(mào)職業(yè)學院《經(jīng)貿(mào)應(yīng)用文寫作》2023-2024學年第一學期期末試卷
- 共青科技職業(yè)學院《電力電子與變頻技術(shù)》2023-2024學年第一學期期末試卷
- 中考物理基礎(chǔ)復(fù)習課件
- 貿(mào)促會法律培訓課件
- 贛南衛(wèi)生健康職業(yè)學院《能源轉(zhuǎn)換原理B》2023-2024學年第一學期期末試卷
- 艦艇損害管制與艦艇損害管制訓練
- 常見年宵花春節(jié)期間養(yǎng)護攻略
- 安全安全技術(shù)交底模板
- 床上用品材料采購合同
- 2021年河南學業(yè)水平考試 pyton操作題代碼以及 Python基礎(chǔ)知識點
- 整本書閱讀《鄉(xiāng)土中國》課件+2024-2025學年統(tǒng)編版高中語文必修上冊
- 夏天奔跑的聲音(2022年浙江杭州中考語文試卷記敘文閱讀題及答案)
- 人力資源許可證制度(服務(wù)流程、服務(wù)協(xié)議、收費標準、信息發(fā)布審查和投訴處理)
- 延期留用崗位協(xié)議書模板
- 2024包鋼(集團)公司招聘941人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 人教PEP版小學英語六年級上冊Unit1-6單元單元檢測試卷(含聽力材料)
評論
0/150
提交評論