java我正在寻找一种使用hashmap和键、值组合的方法;用于xml文件中的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"/>
我试图使用hashmap将节点“rdf:ID”的内容替换为一个新值,以及字符串所在的任何“rdf:resource”内容。 我已经生成了以下代码
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();
我没能让所有人都来做这项工作。我一直在寻找类似于“cim:Breaker”字符串的东西,而替换就可以了。 弦有什么特别的地方吗
# 1 楼答案
在foreach循环中,每次迭代都会覆盖变量xmlcontent
这意味着您将只向文件写入最后一次迭代的修改,即映射中最后一个条目的replaceAll