資源描述:
《pbdom操作xml文檔輕松入門_powerbuilder》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、PBDOM操作XML文檔輕松入門2008-03-0615:13本文對PBDOM技術(shù)進行相關(guān)介紹,但并不涉及XML的基礎(chǔ)知識,建議閱讀者對下述相關(guān)術(shù)語有一定了解:Document(文檔),DTD(文檔類型定義),schema(大綱),Element(元素),attribute(屬性),processinginstruction(處理命令),entity(實體)。本文主要包括以下內(nèi)容:1、為什么要使用PBDOM以及怎樣創(chuàng)建PBDOM2、PBDOM主要用于那些地方3、如何使用PBDOM編程4、PBDOM和其他XML解析(parser)技術(shù)的比較一、什么是DOM◆文檔對
2、象模型(DocumentObjectModel)1、作為一項W3C規(guī)范,XMLDOM存在目的是為不同類型的應(yīng)用程序提供一個標準的編程接口,它被設(shè)計可以跨平臺、跨語言使用。2、我們可以利用XMLDOM創(chuàng)建XML文檔并操縱其結(jié)構(gòu),增加、修改、刪除元素。3、程序中調(diào)用XML解析器載入XML文檔到內(nèi)存中。當文檔被載入后,可以通過進入DOM檢索和操作相關(guān)信息。4、DOM保存了XML文檔樹,文檔(document)元素位于整棵樹的最頂層。該元素可以有一到多個子節(jié)點來保存樹的結(jié)構(gòu)??梢詤㈤喴韵戮W(wǎng)站:http://www.w3schools.com/dom/來了解更多的關(guān)于XM
3、LDocumentObjectModel的內(nèi)容。二、什么時候應(yīng)該使用DOM工具◆當你需要做下列事情的時候,你應(yīng)該想到XMLDOM的1、在一個或者多個XML文檔之間移動元素2、創(chuàng)建新的元素并且在XML文檔的任意位置插入3、操作元素并重新插入其到XML文檔其他位置4、導(dǎo)入內(nèi)嵌數(shù)據(jù)結(jié)構(gòu)????&.pb9中,數(shù)據(jù)窗口現(xiàn)在可以通過XML導(dǎo)出內(nèi)嵌數(shù)據(jù)結(jié)構(gòu)(nesteddatastructures).三、什么是PBDOM◆PowerBuilder文檔結(jié)構(gòu)模型(PowerBuilderDocumentObjectModel)1、PBDOM是通過PBNI擴展出來的,用于操作XML
4、數(shù)據(jù),并針對PowerScript作了優(yōu)化2、在程序中模型是通過DOM的抽象來表示XML數(shù)據(jù)。(AprogrammingmodeltorepresentXMLdata–anabstractionofDOM)3、底層是對ApacheXerces/C++的封裝。四、PBDOM的設(shè)計目標1、簡單易用(BestraightforwardforPowerBuilderprogrammers)2、可以利用PowerScript的強大語言能力(如對象、方法重載、數(shù)據(jù)等)3、在可能的情況下,隱藏了XML底層的復(fù)雜實現(xiàn)(HidethecomplexitiesofXMLwherev
5、erpossible)4、原有的DOM在pb下使用不夠直觀(DOMisunintuitivetoaPowerBuilderprogrammer)五、使用PBDOM初步◆PBDOM設(shè)置1、添加pbdom90.pbd(%SYBASE%SharedPowerBuilder)到工程的pbl列表中2、%SYBASE%SharedPowerBuilder應(yīng)該在系統(tǒng)路徑或者應(yīng)用程序的路徑中(也就是pbdom要使用此路徑下的pbdom90.dll,pbxerces90.dll、xerces_2_1_0.dll文件,同樣,當程序發(fā)布時候也需要)六、PBDOM類的使用◆如圖
6、所示,反映了PBDOM類的組成和繼承關(guān)系,可以看到,幾乎所有的PBDOM類都繼承自PBDOM_Object(除了PBDOM_Builder和PBDOM_Exception)1、PBDOM_Document◆構(gòu)建PBDOM舉例1.1直接構(gòu)建(XMLdocumentscanbecreatedfromscratch)PBDOM_DocumentdocPBDOM_Elementrootdoc=CREATEPBDOM_Documentroot=CREATEPBDOM_Elementroot.SetName("root")root.SetText("thisistheroo
7、t")doc.AddContent(root)1.2從文件、字符串、DataStore中載入PBDOM_Builderbuilderdoc=builder.BuildFromString("bar")doc=builder.BuildFromFile("c:foobar.xml"doc=builder.BuildFromDataStore(l_ds)2、PBDOM_Element2.1遍歷元素PBDOM_Elementroot,children[],first//Gettherootelementofthedocumentroot=do
8、c.GetRootEle