Java I';我在寻找一种使用hashmap和键、值组合的方法;用于xml文件中的rdfID映射
我有一个xml文件,如下所示:Java I';我在寻找一种使用hashmap和键、值组合的方法;用于xml文件中的rdfID映射,java,xml,replace,replaceall,Java,Xml,Replace,Replaceall,我有一个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:Ter
<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>
T1
1.
及
13676/DS
真的
我试图使用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();
试试看{
对于(Map.Entry rdfIdLookUp:RDF_Mapping.rdfsystemappingMemory.entrySet()){
xmlResult=content.replaceAll(rdfIdLookUp.getKey().toString(),rdfIdLookUp.getValue().toString());
System.out.println(rdfIdLookUp.getKey().toString());
System.out.println(rdfIdLookUp.getValue().toString());
}
FileWriter writer2=新的FileWriter(prop.getProperty(“OutputDirectory”)+“\\new”+文件路径);
writer2.write(xmlResult);
writer2.close();
我一直无法让replaceAll来完成这项工作。我一直在寻找类似“cim:Breaker”字符串的东西,而replaceAll就可以完成这项工作。
字符串有什么特别之处吗?在foreach循环中,每次迭代都会覆盖变量xmlcontent
这意味着您将只向文件写入上一次迭代的修改,即映射中最后一个条目的replaceAll。您不是在每次迭代中都在循环中覆盖xmlresult,因此只保存最后一次更改吗?是的,谢谢…有时它只需要另一双眼睛查看它…:-)添加了一行,其中nt用最新的xmlResult刷新,现在我得到了正确的东西…将创建一个答案
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();