Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';我在寻找一种使用hashmap和键、值组合的方法;用于xml文件中的rdfID映射_Java_Xml_Replace_Replaceall - Fatal编程技术网

Java I';我在寻找一种使用hashmap和键、值组合的方法;用于xml文件中的rdfID映射

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

我有一个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>

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();