有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    在foreach循环中,每次迭代都会覆盖变量xmlcontent

    这意味着您将只向文件写入最后一次迭代的修改,即映射中最后一个条目的replaceAll