我有如下表節點結構的許多拷貝的XML文件:從嵌套散列映射檢索值
<databasetable TblID=」123」 TblName=」Department1_mailbox」>
<SelectColumns>
<Slno>dept1_slno</Slno>
<To>dept1_to</To>
<From>dept1_from</From>
<Subject>dept1_sub</Subject>
<Body>dept1_body</Body>
<BCC>dept1_BCC</BCC>
<CC>dept1_CC</CC>
</SelectColumns>
<WhereCondition>MailSentStatus=’New’</WhereCondition>
<UpdateSuccess>
<MailSentStatus>’Yes’</MailSentStatus>
<MailSentFailedReason>’Mail Sent Successfully’</MailSentFailedReason>
</UpdateSuccess>
<UpdateFailure>
<MailSentStatus>’No’</MailSentStatus>
<MailSentFailedReason>’Mail Sending Failed ’</MailSentFailedReason>
</ UpdateFailure>
</databasetable>
由於它不是一種有效的方式遍歷文件中的每個時間來獲取詳細信息每個節點的查詢在程序中,我使用嵌套的hashmap概念來存儲細節,同時第一次遍歷XML文件。我使用的結構如下:
MapMaster
Key Value
123 MapDetails
Key Value
TblName Department1_mailbox
SelectColumns mapSelect
Key Value
Slno dept1_slno
To dept1_to
From dept1_from
Subject dept1_sub
Body dept1_body
BCC dept1_BCC
CC dept1_CC
WhereCondition MailSentStatus=’New’
UpdateSuccess mapUS
MailSentStatus ’Yes’
MailSentFailedReason ’Mail Sent Successfully’
UpdateFailure mapUF
MailSentStatus ’No’
MailSentFailedReason ’Mail Sending Failed’
但我現在面臨的問題是關於使用嵌套Keys檢索Value部分。例如,
如果我需要Slno關鍵的價值,我必須指定TblID,SelectColumns,Slno嵌套形式,如:
Stirng Slno = ((HashMap)((HashMap)mapMaster.get(「123」))mapDetails.get(「SelectColumns」))mapSelect.get(「Slno」);
這是unconvinent在程序中使用。請提出解決方案,但不要告訴迭代器可用。因爲我必須根據我的程序需要從地圖中獲取個別值。
編輯:我的程序必須獲取有權發送郵件的部門的ID,然後將這些ID與XML文件中的ID進行比較。只有這些ID的信息是從XML中獲取的,相比之下,這些信息才返回true。這是我的全部計劃。請幫忙。
由於提前, Vishu採取將生成包含的元素或屬性的XML路徑完全合格的鍵
您是否嘗試過使用xpath? – Kaj 2011-05-08 17:28:42
@Kaj - 我如何使用xpath? – Vishu 2011-05-09 15:20:47