全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2781
推到 Plurk!
推到 Facebook!

請問BCB中的XMLDocument,有無像xpath一樣的隨機存取方法?

尚未結案
mydearlong
一般會員


發表:7
回覆:5
積分:2
註冊:2004-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-29 23:50:58 IP:163.18.xxx.xxx 未訂閱
各位大大好: 最近用XMLDocument與BCB中的data binding來存取xml檔案。 問題是現在要parse的xml檔案中有上萬筆資料。我的需求僅僅只是 要其中的一筆資料而已,但每次都得parser個10幾秒… 所以想請問各位高手們,bcb有無像.NET一樣的xpathdocument的元件 可以達到random access xml file的功能。謝謝大家。
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-30 00:34:11 IP:211.76.xxx.xxx 未訂閱
引言: 各位大大好: 最近用XMLDocument與BCB中的data binding來存取xml檔案。 問題是現在要parse的xml檔案中有上萬筆資料。我的需求僅僅只是 要其中的一筆資料而已,但每次都得parser個10幾秒… 所以想請問各位高手們,bcb有無像.NET一樣的xpathdocument的元件 可以達到random access xml file的功能。謝謝大家。
mydearlong你好: 參考以下的用法
    _di_IXMLDocument Doc = NewXMLDocument("");
    Doc->XML->Text = "";
    Doc->Active = true;
    _di_IDOMNodeSelect NodeSelector = Doc->GetDocumentElement();        // Single nodes
    _di_IDOMNode SelectedNode;
    if(SUCCEEDED(NodeSelector->selectNode("//ReportType[text()=\"XXX\"]",SelectedNode)))
        {
        }
    // Multiple nodes
    _di_IDOMNodeList SelectedNodes;
    if(SUCCEEDED(NodeSelector->selectNodes("//ReportType[text()=\"XXX\"]",SelectedNodes)))
        {
        }     
mydearlong
一般會員


發表:7
回覆:5
積分:2
註冊:2004-08-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-30 12:51:24 IP:163.18.xxx.xxx 未訂閱
謝謝版主: 您告訴我了know how...但know why,我查BCB help與win SDK help始終查不到那些API是哪來的?另外我也不懂它們是如何運作,如何達到random access的呢?謝謝大家。
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-30 14:11:43 IP:211.76.xxx.xxx 未訂閱
XML是不支援random access的(XPath的技術也不是靠random access完成)。 另外這個介面只是在Window的COM元件上包一個包裝,比較好用而已。相關的COM使用法參考msdn會比較好。bcb的help還有不少漏寫的東西...
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-30 14:17:43 IP:211.76.xxx.xxx 未訂閱
另外要提的是,XML不適合處理萬筆以上的資料,大概幾千筆就很難有好的效率了。這個是XML技術的缺點,也沒有更好的解法。 以你的情況,最好的解決方案是使用資料庫。不然也可以試試現在還在發展中的Binary XML技術,效率比現在的XML好五倍以上。可以參考看看Sun的Fast InfoSet計劃。
mydearlong
一般會員


發表:7
回覆:5
積分:2
註冊:2004-08-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-30 14:20:56 IP:163.18.xxx.xxx 未訂閱
謝謝您,我去查msdn~謝謝。
系統時間:2024-11-25 13:50:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!