版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、xmldataobject 全接觸文檔編號(hào): 文檔名稱(chēng):編寫(xiě):編寫(xiě)日期:審核:審核日期:批準(zhǔn):批準(zhǔn)日期:神州數(shù)碼(中國(guó))有限公司 frame 技術(shù)文檔制作 項(xiàng)目組修訂狀況章中編號(hào)章1名稱(chēng)修訂內(nèi)容簡(jiǎn)述修訂人修訂日期修訂、之, 刖版本號(hào)批準(zhǔn)人增加內(nèi)容說(shuō)明toxmlwithattr焦桐衛(wèi)2006101方法。7xmldataobject提供游標(biāo)機(jī)制,能夠動(dòng)態(tài)操縱其中元素或?qū)傩浴?在存取方法上,適應(yīng)于 關(guān)系模型,提供了行、列仿照機(jī)制,便于應(yīng)用開(kāi)發(fā)。同時(shí)它還實(shí)現(xiàn)了dataobject接口,提供對(duì)數(shù)據(jù)的基本操作及事件的響應(yīng),如清除所有記錄、設(shè)置第 row行第col列的值、檢索開(kāi) 始事件(retrievest
2、art)、檢索執(zhí)行完畢事件(retrieveend)等,因此 xmldataobject廣泛用 于請(qǐng)求報(bào)文的處理等方面。掌握xmldataobject的使用需要先理解三個(gè)概念:一個(gè)是游標(biāo)機(jī)制,其次是帶子表的二維表映射,再者是相對(duì)路徑和全路徑模式。我們先看下面的xml數(shù)據(jù)片斷:<root><amastertable><arow><col1>v11</col1> <col2>v12</col2> </arow> <brow><adetailtable><crow>&l
3、t;col3>v11</col3><col4>v12</col4></crow> <drow> <col5>v21</col5> <col6>v22</col6> </drow></adetailtable> </brow> </amastertable> </root>當(dāng)我們把注意力放在 <arow>節(jié)點(diǎn)上,以<arow>節(jié)點(diǎn)為基準(zhǔn)點(diǎn)來(lái)看數(shù)據(jù)就會(huì)發(fā)現(xiàn)可以按 照關(guān)系型數(shù)據(jù)庫(kù)的二維表的方式來(lái)解讀數(shù)據(jù),
4、即認(rèn)為<arow>節(jié)點(diǎn)代表著一行,而 <col1>和<col2>各自代表一列。而如果我們以<brow>為基準(zhǔn)點(diǎn)來(lái)看數(shù)據(jù)就會(huì)發(fā)現(xiàn)可以把 <adetailtable> 節(jié)點(diǎn)理解為<amastertable>節(jié)點(diǎn)的一個(gè)子表。我們看數(shù)據(jù)的目光所在的基準(zhǔn) 點(diǎn)其實(shí)就是xmldataobject的游標(biāo),而我們對(duì)數(shù)據(jù)的這種理解方式即是xmldataobject到二維表的映射。對(duì)于數(shù)據(jù)定位,我們可以有兩種模式,舉個(gè)例子,假如我們要取得<col1>節(jié)點(diǎn)的值,一種模式是將游標(biāo)移動(dòng)<arow>節(jié)點(diǎn),再取<arow&g
5、t;節(jié)點(diǎn)下名為“col1 ”的節(jié)點(diǎn)的值; 另一種模式是不管游標(biāo)在哪,我們就取名為“ root. amastertable. arrow. col1”的節(jié)點(diǎn)的值,這兩種模式都能正確的取到節(jié)點(diǎn)值,區(qū)別就在于一個(gè)用相對(duì)路徑模式操作,而一個(gè)是用全路徑模式操作。到從上面的例子我們可以看出,隨著游標(biāo)的移動(dòng),我們看到的數(shù)據(jù)是不一樣的,這種二維表映射關(guān)系是動(dòng)態(tài)的,換言之,對(duì)于同一個(gè)節(jié)點(diǎn),游標(biāo)處于不同的位置時(shí)這個(gè)節(jié)點(diǎn)可能看上去是一列,也可能是一行或是其他,這也就引出一個(gè)重要的觀念:為便于理解和操作,我們最好將游標(biāo)停在適當(dāng)?shù)奈恢蒙?,這在xmldataobject的實(shí)際應(yīng)用中就是xmldataobject結(jié)合了 x
6、ml和數(shù)據(jù)對(duì)象的特性,對(duì)它的操作主要就是插入節(jié)點(diǎn)和刪 除節(jié)點(diǎn)、讀取以及更改節(jié)點(diǎn)的屬性和節(jié)點(diǎn)的值、數(shù)據(jù)的轉(zhuǎn)換等。下面將分門(mén)別類(lèi)地介紹 xmldataobject的各個(gè)常用方法。1、 構(gòu)造函數(shù)xmldataobject()創(chuàng)建一個(gè)不含任何數(shù)據(jù)的空的數(shù)據(jù)對(duì)象,如果需要,我們可以在這個(gè)空的數(shù)據(jù)對(duì)象上插入數(shù)據(jù)。xmldataobject(element t) throws nodenotfoundexception用已知的元素t來(lái)構(gòu)造數(shù)據(jù)對(duì)象并將根節(jié)點(diǎn)設(shè)為該元素節(jié)點(diǎn)。xmldataobject(element t,string startpath) throws nodenotfoundexceptio
7、n在已知白元素t中找尋startpath 參數(shù)指示的節(jié)點(diǎn),以找到的節(jié)點(diǎn)作為根節(jié)點(diǎn)來(lái)構(gòu)造 數(shù)據(jù)對(duì)象。2、 移動(dòng)游標(biāo)void setxmltree(item t)將當(dāng)前根節(jié)點(diǎn)即游標(biāo)移動(dòng)到t參數(shù)所指的節(jié)點(diǎn)上,這需要我們事先獲得該節(jié)點(diǎn)對(duì)象。void rootscr011to(string nodename) throws doexception將游標(biāo)移動(dòng)到nodename參數(shù)所指的的節(jié)點(diǎn)上,nodename參數(shù)應(yīng)為全路徑方式的節(jié)點(diǎn) 名稱(chēng)。void resetroot() throws doexception |重置根節(jié)點(diǎn),將游標(biāo)移動(dòng)到原始根節(jié)點(diǎn)上。3、 插入節(jié)點(diǎn)long insert(long row
8、,string rowname,string cols)在row參數(shù)指定的行號(hào)上插入一個(gè)名為參數(shù)rowname指定名稱(chēng)的空行,該行的各個(gè)列的名稱(chēng)由cols參數(shù)指定。如果row參數(shù)小于0,則將該空行插入到第。行,如果row參數(shù)大于xmldataobject數(shù)據(jù)的行數(shù),則將該空行插入到最后。void insertaschild(element e1, element e2) throws doexception將元素e2作為元素e1的子節(jié)點(diǎn)插入到 xmldataobject中。例如: 插入前數(shù)據(jù)如下:<e1></e1><e2></e2>插入后數(shù)據(jù)變?yōu)?/p>
9、:<e1><e2></e2></e1>void insertaschild(int position, string nodename, string insertname, string insertvalue) throws doexception在第position 個(gè)名為nodename的節(jié)點(diǎn)處插入子節(jié)點(diǎn),子節(jié)點(diǎn)的名稱(chēng)為insertname ,值為 insertvalue 。插入前數(shù)據(jù)如下:<row><f1>1</f1><f2>2</f2></row><row&
10、gt;<f1>1</f1><f2>2</f2></row>執(zhí)行下面兩行代碼:insertaschild(-1, "root.row.f1", "ff1", "11");insertaschild(0, "root.row", "rr1", "111");數(shù)據(jù)變?yōu)椋?lt;row><f1>1</f1><f2>2</f2><rr1>111</rr1&
11、gt;<rr1>111</rr1></row><row><f1><ff1>11</ff1></f1><f2>2</f2></row>void insertaschild(int position, string nodename, string insertnames, string insertvalues) throws doexception在第 position 個(gè)名為 nodename 的節(jié)點(diǎn)處插入若干子節(jié)點(diǎn),子節(jié)點(diǎn)的名稱(chēng)數(shù)組為insertnames ,
12、值數(shù)組為insertvalues 。名稱(chēng)數(shù)組與值數(shù)組的長(zhǎng)度要一致,名 / 值順序要一一對(duì)應(yīng)。插入前數(shù)據(jù)如下:<row><f1>1</f1><f2>2</f2></row><row><f1>1</f1><f2>2</f2></row>new執(zhí)行下面兩行代碼:insertaschild(-1, "root.row.f1", new string "ff1","ff2","ff3"
13、;, string "11","22","33");insertaschild(0, "root.row", new string "rr1","rr2","rr3", new string "111","222","333");數(shù)據(jù)變?yōu)椋?lt;row><f1>1</f1><f2>2</f2><rr1>111</rr1>
14、;<rr2>222</rr2><rr3>333</rr3></row><row><f1><ff1>11</ff1><ff2>22</ff2><ff3>33</ff3></f1><f2>2</f2></row>void insertasparent(element e1, item item) throws doexception 將item 作為e1的父節(jié)點(diǎn)插入到 xmldataobject中
15、。例如: 插入前數(shù)據(jù)如下:<parent><e1></e1></parent><item><item>插入后數(shù)據(jù)變?yōu)椋?lt;parent><item><e1></e1><item></parent>void insertassibling(element e1, element e2) throws doexception將e2作為el的兄弟節(jié)點(diǎn)插入到 xmldataobject中。例如:插入前數(shù)據(jù)如下:<parent><e1>&l
16、t;/e1></parent><e2></e2>插入后數(shù)據(jù)變?yōu)椋?lt;parent><e1></e1><e2></e2></parent>void insertdo(xmldataobject xdo1)throws exception將xdo1代表的xml數(shù)據(jù)對(duì)象插入本數(shù)據(jù)對(duì)象的根節(jié)點(diǎn)下,并設(shè)置當(dāng)前數(shù)據(jù)對(duì)象的根為原始根節(jié)點(diǎn)。例如:a是一個(gè) xmldataobject對(duì)象,它的內(nèi)容為<root><clientinfo><custname> 神州數(shù)碼
17、5</custname><creditlevel>1</creditlevel><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum></clientinfo></root>b也是一個(gè) xmldataobject對(duì)象,它的內(nèi)容為<userbasicinfo><s
18、vcnum>lt;/svcnum><password>222452</password><custid>xinc0300000389</custid><corrtype>1</corrtype></userbasicinfo>執(zhí)行a.insertdo(b) 后,a的數(shù)據(jù)為<root><clientinfo><custname> 神州數(shù)碼 5</custname><creditlevel>1</creditlev
19、el><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum></clientinfo><userbasicinfo><svcnum>lt;/svcnum><password>222452</password><custid>xinc
20、0300000389</custid><corrtype>1</corrtype></userbasicinfo></root>void insertdo(xmldataobject xdo1,string nodepath)throws exception將xdo1代表的xml數(shù)據(jù)對(duì)象插入第一個(gè)名為nodepath的節(jié)點(diǎn)下,并設(shè)置當(dāng)前數(shù)據(jù)對(duì)象的根為原始根節(jié)點(diǎn)。例如:a是一個(gè) xmldataobject對(duì)象,它的內(nèi)容為<root><clientinfo><custname> 神州數(shù)碼 5</c
21、ustname><creditlevel>1</creditlevel><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum></clientinfo></root>b也是一個(gè) xmldataobject對(duì)象,它的內(nèi)容為<userbasicinfo><svcnum&g
22、tlt;/svcnum><password>222452</password><custid>xinc0300000389</custid><corrtype>1</corrtype></userbasicinfo>執(zhí)行 a.insertdo(b,"clientinfo") 后,a 的數(shù)據(jù)為<root><clientinfo><custname> 神州數(shù)碼 5</custname><creditlevel&
23、gt;1</creditlevel><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum><userbasicinfo><svcnum>lt;/svcnum><password>222452</password><custid>xinc0
24、300000389</custid><corrtype>1</corrtype></userbasicinfo></clientinfo></root>void insertdo(xmldataobject xdo1,string nodepath,int n)throws exception將xdo1代表的xml數(shù)據(jù)對(duì)象插入第n個(gè)(從零開(kāi)始計(jì)數(shù))名為nodepath的節(jié)點(diǎn)下,并 設(shè)置當(dāng)前數(shù)據(jù)對(duì)象的根為原始根節(jié)點(diǎn)。例如:a是一個(gè) xmldataobject對(duì)象,它的內(nèi)容為<root><clientinfo
25、><custname> 神州數(shù)碼 5</custname><creditlevel>1</creditlevel><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum></clientinfo><clientinfo><custname> 神州數(shù)碼
26、5</custname><creditlevel>1</creditlevel><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum></clientinfo></root>b也是一個(gè) xmldataobject對(duì)象,它的內(nèi)容為<userbasicinfo><s
27、vcnum>lt;/svcnum><password>222452</password><custid>xinc0300000389</custid><corrtype>1</corrtype></userbasicinfo>執(zhí)行 a.insertdo(b,"clientinfo",1)后,a 的數(shù)據(jù)為<root><clientinfo><custname> 神州數(shù)碼 5</custname><cred
28、itlevel>1</creditlevel><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum></clientinfo><clientinfo><custname> 神州數(shù)碼 5</custname><creditlevel>1</creditlev
29、el><custbirth>20021012</custbirth><occptypecode>1</occptypecode><certtype>1</certtype><certnum>5555555</certnum><userbasicinfo><svcnum>lt;/svcnum><password>222452</password><custid>xinc0300000389</cust
30、id><corrtype>1</corrtype></userbasicinfo></clientinfo></root>4、 刪除節(jié)點(diǎn)void delete(element e1) throws doexception將e1節(jié)點(diǎn)及該節(jié)點(diǎn)以下節(jié)點(diǎn)從xmldataobject中刪除。例如:刪除前數(shù)據(jù)如下:<parent><e1></e1></parent>刪除后數(shù)據(jù)變?yōu)椋?lt;parent></parent>void deleteandtakeoverthechi
31、ldren(element e1) throws doexception將e1節(jié)點(diǎn)從xmldataobject中刪除,但是接管 e1節(jié)點(diǎn)以下的節(jié)點(diǎn)。例如: 刪除前數(shù)據(jù)如下:<parent><e1><item></e1></parent>刪除后數(shù)據(jù)變?yōu)椋?lt;parent><item></item></parent>5、 操縱數(shù)據(jù)對(duì)象static xmldataobject unionxdo(xmldataobject xdo) throws exception合并xd。參數(shù)中的數(shù)據(jù)對(duì)象,并以
32、第一個(gè)數(shù)據(jù)對(duì)象的根節(jié)點(diǎn)作為合并后的數(shù)據(jù)對(duì)象的 根節(jié)點(diǎn)。例如:xdo0數(shù)據(jù)如下:<root><parent1><item1></item1></parent1 ></root>xdo1數(shù)據(jù)如下:<parent2><item2></item2></parent2>xdo2數(shù)據(jù)如下:<parent3><item3></item3></parent3>合并后數(shù)據(jù)變?yōu)椋?lt;root><parent1><item
33、1></item1></parent1 ><parent2><item2></item2></parent2><parent3> <item3> </item3></parent3></root>element getcolelement(element row,int col)取得row元素的第col列元素。例如: row元素如下:<row><c1></c1><c2></c2></row&g
34、t;那么取第0列元素得到的就是:<c1></c1>element getcolelement(element row,string colname) 取得row元素的名為 colname的列元素。int getcolumncount()取得列的個(gè)數(shù)(實(shí)際上是取第0行數(shù)據(jù)的列的個(gè)數(shù))int getcolumncount(int arow)取得第arow行數(shù)據(jù)的列的個(gè)數(shù)。實(shí)際可能出現(xiàn)各行的列的個(gè)數(shù)不一樣的情況,例如: <or><ormap table="table1"><orcolumn columname="c1
35、"></orcolumn><orcolumn columname="c2"></orcolumn></ormap><ormap table="table2"><orcolumn columname="c1"></ormap></or>element getcutroot()取得當(dāng)前起始路徑 startpath 所指定的子根節(jié)點(diǎn)xmldataobject getdo(string nodepath) throws except
36、ion取得nodepath指定的子節(jié)點(diǎn)所對(duì)應(yīng)的xmldataobject對(duì)象。例如:假定以下xml文件對(duì)應(yīng)的 xmldataobject為xdo <student><item><student_id>crab</student_id><student_name>alive</student_name></item> <item><student_id>whelk</student_id><student_name>dead</student_name>
37、</item></student>執(zhí)行 xdo.getdo("item") 返回的 xmldataobject 對(duì)應(yīng)的 xml如下: <item><student_id>crab</student_id><student_name>alive</student_name> </item>xmldataobject getdo(string nodepath,int n) throws exception 取得nodepath指定的子節(jié)點(diǎn)下第 n個(gè)xmldataobject對(duì)象。例
38、如: 假定以下xml文件對(duì)應(yīng)的 xmldataobject為xdo <student> <item><student_id>crab</student_id><student_name>alive</student_name></item><item><student_id>whelk</student_id><student_name>dead</student_name></item></student>執(zhí)行 xdo.get
39、do("item",1) 返回的 xmldataobject 對(duì)應(yīng)的 xml如下: <item><student_id>whelk</student_id><student_name>dead</student_name> </item>arraylist getitem(element rt,string itemname)取得rt節(jié)點(diǎn)下名稱(chēng)為itemname的所有節(jié)點(diǎn)。itemname應(yīng)為全路徑名稱(chēng)。object getitemany(long arow,int col)取得第arow行第col列的
40、節(jié)點(diǎn)或者節(jié)點(diǎn)的值(如果該節(jié)點(diǎn)為葉節(jié)點(diǎn))。object getitemany(long arow,string colname)取得第arow行,列名稱(chēng)為colname的節(jié)點(diǎn)或者節(jié)點(diǎn)的值(如果該節(jié)點(diǎn)為葉節(jié)點(diǎn))attribute getitemattribute(long arow,int col)取得第arow行第col列的節(jié)點(diǎn)的屬性。attribute getitemattribute(long arow,string colname)取得第arow行,列名稱(chēng)為colname的節(jié)點(diǎn)的屬性。object getitemnameany(long arow,int col)取得第arow行第col列
41、的節(jié)點(diǎn)的名稱(chēng)。object getrow(long arow)取得arow參數(shù)指定的行節(jié)點(diǎn)。long getrowcount()取得行的個(gè)數(shù)。string getrowname(long arow)取得arow參數(shù)指定的行的名稱(chēng)。element getuniqueitem(string itemname) i取得名為itemname的唯一結(jié)點(diǎn)。boolean isbsinglerow()當(dāng)前數(shù)據(jù)對(duì)象是否是單行模式。即當(dāng)前的數(shù)據(jù)對(duì)象是否只表示一行數(shù)據(jù)。void rename(string newname)將當(dāng)前起始路徑startpath 所指定的子根節(jié)點(diǎn)的名稱(chēng)改為newnamevoid rena
42、meitem(long arow, string colname, string newname)throwsillegalargumentexception將第arow行名為colname的節(jié)點(diǎn)的名稱(chēng)改為 newnamevoid renamerow(long arow, string newname)將arow參數(shù)指定的行節(jié)點(diǎn)的名稱(chēng)改為newnamevoid reset()清除數(shù)據(jù)對(duì)象中的所有數(shù)據(jù)。void setbfullpathmode(boolean b)設(shè)置路徑模式為全路徑模式或者相對(duì)路徑模式。b=true時(shí)為全路徑模式,b=false時(shí)為相對(duì)路徑模式。6、 讀取數(shù)據(jù)string g
43、etitemvalue(element rt,string itemname)取得rt節(jié)點(diǎn)下名為itemname的節(jié)點(diǎn)的值。string getitemvalue(string nodename)取得根節(jié)點(diǎn)下名為 nodename的節(jié)點(diǎn)的值。string getrowattributevalue(long arow,int att_idx)取得arow參數(shù)指定的行節(jié)點(diǎn)的第att_idx 個(gè)屬性的值。string getrowattributevalue(long arow,string name)取得arow參數(shù)指定的行節(jié)點(diǎn)的名為name的屬性的值。long retrieve。throws doexception取得startpath 所指定的子根節(jié)點(diǎn)的數(shù)據(jù)。7、 更改數(shù)據(jù)void setitemany(long arow,string colnam
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)村信用合作社聘用合同樣本
- 二零二五年度國(guó)際貨物出口合同范文:非洲新興市場(chǎng)合作項(xiàng)目
- 2025年度公廁工程承包合同書(shū)(含社區(qū)共建)3篇
- 二零二五年度公司施工隊(duì)鋼結(jié)構(gòu)工程施工合作協(xié)議3篇
- 二零二五年度全新高空橋梁施工意外事故免責(zé)責(zé)任書(shū)3篇
- 二零二五年度智能倉(cāng)儲(chǔ)物流系統(tǒng)采購(gòu)合同模板2篇
- 二零二五年度消防隊(duì)伍后勤保障服務(wù)合同3篇
- 2025年度農(nóng)村出租房租賃與農(nóng)村電子商務(wù)運(yùn)營(yíng)服務(wù)合同
- 2025年度智慧城市建設(shè)項(xiàng)目合同2篇
- 二零二五年度農(nóng)村集體土地房屋產(chǎn)權(quán)轉(zhuǎn)讓合同下載
- 《皮膚病中成藥導(dǎo)引》課件
- 2024-2030年中國(guó)除顫儀行業(yè)市場(chǎng)分析報(bào)告
- 廣東省廣州市天河區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末考試物理試題(含答案)
- 2024年高一上學(xué)期期末數(shù)學(xué)考點(diǎn)《壓軸題》含答案解析
- 成都中醫(yī)藥大學(xué)博士申請(qǐng)
- 太空軍事法律問(wèn)題-洞察分析
- 招標(biāo)代理崗位職責(zé)規(guī)章制度
- 家校攜手育桃李 齊心合力創(chuàng)輝煌 課件高二上學(xué)期期末家長(zhǎng)會(huì)
- 二零二四年風(fēng)力發(fā)電項(xiàng)目EPC總承包合同
- 文化傳媒企業(yè)資質(zhì)掛靠合作協(xié)議書(shū)
- 眼鏡學(xué)智慧樹(shù)知到答案2024年溫州醫(yī)科大學(xué)
評(píng)論
0/150
提交評(píng)論