使用DOM解析器,我將屬性值存儲在Java中的HashMap中,然後根據需要進行檢索。有沒有其他的方式來做到這一點,而不使用地圖?DOM解析器讀取Xml,檢索屬性值並存儲它們
XML例子
<?xml version="1.0" encoding="UTF-8"?>
<Main>
<SubMainLevels>
<SubMainLevel LineNo="1" arg2="122" RollNo="11" weight="14" folds="1" />
<SubMainLevel LineNo="2" arg2="123" RollNo="12" weight="12" folds="2" />
</SubMainLevels>
</Main>
我做了什麼
Map<String, String> x = new HashMap<String, String>();
getXmlAttr(){
Traverse till Main\SubMainLevels\SubMainLevel
for each SubMainLevel {
getAttribute() for all attributes LineNo,arg2,RollNo,weight,folds
concatenate strConcat = arg2+":"+RollNo+":"+weight+":"+folds
x.put(LineNo,strConcat);
}
}
reteriveAttrMap(HashMap x){
for each HashMap key{
strVal =x.get(key)
split strVal at ":"
//do stuff
}
}
什麼在使用'Map'危害?您可以使用POJO類來存儲屬性,而不是使用字符串。在這種情況下,每次檢索屬性值時都不需要分割字符串。 – Braj
@Braj如你所說_「你可以使用POJO類來存儲屬性,而不是使用字符串。在這種情況下,你不需要每次都拆分字符串,同時檢索屬性值」_ \t 我正在使用輸入xml,將其轉換爲DOM文檔(inpDoc),然後調用getXmlValues來創建PojoClass類的對象並傳遞所有屬性。然後我將這個對象存儲在一個以「LineNo」作爲關鍵字的散列表中。是** [this](http://shrib.com/xmlJava)**你在暗示什麼?在其他鏈接中發佈代碼片段,因爲它在這裏的評論中丟失了其格式 – 2FaceMan
是的,你是對的,它的正確方式但是你的約束在你的問題中提到了什麼 - **是否有任何其他的方式來做到這一點,而不使用映射**。 – Braj