線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3472
推到 Plurk!
推到 Facebook!

Delphi中如何得知XML文件中某個Node的個數??

尚未結案
cindyliu
一般會員


發表:16
回覆:18
積分:6
註冊:2008-09-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-25 22:23:12 IP:118.166.xxx.xxx 訂閱
假如這是我的XML檔:

<CUSTDATA>
<NAME>MARY</NAME>
<AGE>20</AGE>
<PRODUCT>
<SEQ>1</SEQ>
<DESCP>ABCD</DESCP>
</PRODUCT>
<PRODUCT>
<SEQ>2</SEQ>
<DESCP>EFGH</DESCP>
</PRODUCT>
<PRODUCT>
<SEQ>3</SEQ>
<DESCP>IJK</DESCP>
</PRODUCT>
</CUSTDATA>

=======================

這個XML檔裡,PRODUCT會出現很多次
而每一個PRODUCT底下一定會有2個Node
這部份程式我知道怎麼算PRODUCT底下的Node個數...

但是我要怎麼知道這個XML中有3個PRODUCT??
可以算的出來嗎?
編輯記錄
cindyliu 重新編輯於 2009-02-25 22:24:45, 註解 無‧
cindyliu 重新編輯於 2009-02-25 22:26:54, 註解 無‧
cindyliu 重新編輯於 2009-02-25 22:31:17, 註解 無‧
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-26 00:35:54 IP:60.250.xxx.xxx 訂閱
以下的連結資訊
也許對你有幫助
http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=94359
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
cindyliu
一般會員


發表:16
回覆:18
積分:6
註冊:2008-09-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-26 14:21:31 IP:59.120.xxx.xxx 訂閱

我已經知道怎麼計算有幾個<PRODUCT>了

var nodeList: IDOMNodeList;
nodeList := XMLDocument1.DOMDocument.getElementsByTagName('PRODUCT');
Showmessage(IntToStr(nodeList.length)); // 3

但是...如果我要抓到第二個PRODUCT的值,也就是「2、EFGH」又該怎麼寫呢?

showmessage(nodeList.item[0].childNodes[1].nodename); // 可以讀到tag名稱 DESCP
showmessage(nodeList.item[0].childNodes[1].nodevalue); // 卻讀不到DESCP的值EFGH


===================引 用 cindyliu 文 章===================
假如這是我的XML檔:

<CUSTDATA>
<NAME>MARY</NAME>
<AGE>20</AGE>
<PRODUCT>
<SEQ>1</SEQ>
<DESCP>ABCD</DESCP>
</PRODUCT>
<PRODUCT>
<SEQ>2</SEQ>
<DESCP>EFGH</DESCP>
</PRODUCT>
<PRODUCT>
<SEQ>3</SEQ>
<DESCP>IJK</DESCP>
</PRODUCT>
</CUSTDATA>

=======================

這個XML檔裡,PRODUCT會出現很多次
而每一個PRODUCT底下一定會有2個Node
這部份程式我知道怎麼算PRODUCT底下的Node個數...

但是我要怎麼知道這個XML中有3個PRODUCT??
可以算的出來嗎?
編輯記錄
cindyliu 重新編輯於 2009-02-26 14:31:06, 註解 無‧
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-27 01:14:38 IP:60.250.xxx.xxx 訂閱
以下連結有相關說明
於介紹 使用【XmlDocument 的程式方式】

http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=80921
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
cindyliu
一般會員


發表:16
回覆:18
積分:6
註冊:2008-09-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-02-27 18:26:57 IP:59.120.xxx.xxx 訂閱
還是不太懂..不知怎麼取得每一個<PRODUCT>的值
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-03-01 23:16:22 IP:60.250.xxx.xxx 訂閱
試試看

showmessage(nodeList.item[0].childNodes[1].nodename); // 可以讀到tag名稱 DESCP
showmessage(nodeList.item[0].childNodes[1].nodevalue); // 卻讀不到DESCP的值EFGH

改寫
if nodeList1.item[0].childNodes[0].hasChildNodes then
begin
showmessage(nodeList1.item[0].childNodes[1].childNodes[0].nodevalue);
end



=========================================================================================
以下連結有相關說明
於介紹 使用【XmlDocument 的程式方式】

http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=80921
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-03-01 23:18:36, 註解 無‧
AndrewK 重新編輯於 2009-03-01 23:31:23, 註解 無‧
系統時間:2017-12-12 0:45:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!