0
我有一個XML文件,該文件是這樣的:我正在尋找一種方法來使用hashmap和鍵值組合;用於rdfID映射在XML文件中
<cim:Terminal rdf:ID="6e5aba74-f8bf-4077-be5c-7058837e6990">
<cim:IdentifiedObject.name>T1</cim:IdentifiedObject.name>
<cim:Terminal.ConductingEquipment rdf:resource="#_CB_LAGN_LAGN_ANLK_CB_DUMCB"/>
<cim:Terminal.ConnectivityNode rdf:resource="#_ND_LAGN_LAGN_ANLK_34.5_1"/>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
和
<cim:Breaker rdf:ID="a5f64f08-baac-457b-b11e-39ad990ececb">
<cim:IdentifiedObject.name>13676/DS</cim:IdentifiedObject.name>
<cim:Switch.normalOpen>true</cim:Switch.normalOpen>
<cim:Equipment.EquipmentContainer rdf:resource="#_KV_LAGN_LAGN_CTWD_500"/>
我試圖使用一個散列映射,用一個新值以及字符串適合的任何「rdf:resource」來代替節點「rdf:ID」的內容。 我已經生成了以下代碼。
try{
for (Map.Entry <String, String> rdfIdLookUp : RDF_Mapping.rdfSystemMappingMemory.entrySet()){
xmlResult = content.replaceAll(rdfIdLookUp.getKey().toString(),rdfIdLookUp.getValue().toString());
System.out.println (rdfIdLookUp.getKey().toString());
System.out.println (rdfIdLookUp.getValue().toString());
}
FileWriter writer2 = new FileWriter(prop.getProperty("OutputDirectory")+"\\New"+filePath);
writer2.write(xmlResult);
writer2.close();
我還沒有能夠讓replaceAll來完成這項工作。我玩過並且尋找像「cim:Breaker」字符串之類的東西,替換工作就是這樣。 有沒有什麼特別的字符串?
你是不是在循環中用每次迭代覆蓋xmlresult,因此只保存最後一次更改? –
是的,謝謝......有時它只是需要另一雙眼睛看着它...... :-)添加了一行,其中內容被刷新與最新的xmlResult,現在我得到正確的東西... – JensW
將創建一個答案 –