使用Java将XML数据写入CSV文件

时间:2015-04-03 05:01:09

标签: java xml maven csv jaxb

我在netbeans 8.0.2中使用Maven项目来读取XML文件。 xml文件的模板已作为依赖项添加到项目的settings.xml文件中。我能够使用JAXB读取文件并在控制台中成功打印输出。我想在CSV文件中编写相同的控制台输出。请帮忙

Java代码......

   private static void PUE_Checker(String fileName) {
    try {
        //Unmarshall the DDF File
        ElementDefinitionPackage elementDefinitionPackage = unmarshall(fileName);
        //For Each Element Definition Model Defined in Package Check If PUE Rules are defined in Datapoint Section and Rules Section
        for (ElementDefinitionModel model : elementDefinitionPackage.getElementDefinitionModels()) {
            //Check in Datapoints for Each Supported Protocol
            for (SupportedProtocolType supportedProtocol : model.getSupportedprotocols().getSupportedProtocols()) {
                boolean powerConsumedDataPointFound = false;
                boolean energyIntervalDataPointFound = false;
                for (DatapointType datapoint : supportedProtocol.getDatapoints().getDatapoints()) {
                    if (datapoint.getProgrammaticName().equalsIgnoreCase(PWR_CONSUMED_DP)) {
                        powerConsumedDataPointFound = true;
                    }
                    if (datapoint.getProgrammaticName().equalsIgnoreCase(ENRG_INTERVAL_DP)) {
                        energyIntervalDataPointFound = true;
                    }
                }
                if (!powerConsumedDataPointFound && !energyIntervalDataPointFound) {
                    System.out.println(" Both PUE Data point not defined for Model: " + model.getModelInSymbol() + ", Model Qualifier: " + model.getModelQualifierInSymbol() + " and Protocol: " + supportedProtocol.getProtocolName()+ ", Symbol Tag: " + model.getSymbolTag());
                }else
                if (!powerConsumedDataPointFound) {
                    System.out.println("Power Consumed PUE Data point not defined for Model: " + model.getModelInSymbol() + ", Model Qualifier: " + model.getModelQualifierInSymbol() + " and Protocol: " + supportedProtocol.getProtocolName()+ ", Symbol Tag: " + model.getSymbolTag());
                }else
                    if (!energyIntervalDataPointFound) {
                    System.out.println("Energy Interval PUE Data point not defined for Model: " + model.getModelInSymbol() + ", Model Qualifier: " + model.getModelQualifierInSymbol() + " and Protocol: " + supportedProtocol.getProtocolName()+ ", Symbol Tag: " + model.getSymbolTag());
                }
            }
            // Check in Rules Section
            boolean powerConsumedRuleFound = false;
            boolean energyIntervalRuleFound = false;
            for (Rule rulesType : model.getRules().getRules()) {
                if (rulesType.getCollection() != null) {
                    if (rulesType.getCollection().getName().equalsIgnoreCase(PWR_CONSUMED_RULE)) {
                        powerConsumedRuleFound = true;
                    }
                    if (rulesType.getCollection().getName().equalsIgnoreCase(ENRG_INTERVAL_RULE)) {
                        energyIntervalRuleFound = true;
                    }
                }
            }
            if (!powerConsumedRuleFound && !energyIntervalRuleFound) {
                System.out.println("Both PUE Rules line not defined for Model: " + model.getModelInSymbol() + ", Model Qualifier: " + model.getModelQualifierInSymbol()+ ", Symbol Tag: " + model.getSymbolTag());
            }else 
            if (!powerConsumedRuleFound) {
                System.out.println("Power Consumed PUE Rule line not defined for Model: " + model.getModelInSymbol() + ", Model Qualifier: " + model.getModelQualifierInSymbol()+ ", Symbol Tag: " + model.getSymbolTag());
            }else
            if (!energyIntervalRuleFound) {
                System.out.println("Energy Interval PUE Rules line not defined for Model: " + model.getModelInSymbol() + ", Model Qualifier: " + model.getModelQualifierInSymbol()+ ", Symbol Tag: " + model.getSymbolTag());
            }
        }
    } catch (JAXBException ex) {
        Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
        //ex.printStackTrace();
    }
}


private static ElementDefinitionPackage unmarshall(String file) throws JAXBException {
    return (ElementDefinitionPackage) JAXBContext.newInstance(ElementDefinitionPackage.class).createUnmarshaller().unmarshal(new File(file));
}

当前输出:

   Both PUE Data point not defined for Model: AC500-ECO, Model Qualifier: PM564-R-AC and Protocol: MODBUS/RS-485, Symbol Tag: ABBAC500-ECOPM564-R-AC
   Both PUE Data point not defined for Model: AC500-ECO, Model Qualifier: PM564-R-AC and Protocol: MODBUS/TCP, Symbol Tag: ABBAC500-ECOPM564-R-AC
   Both PUE Rules line not defined for Model: AC500-ECO, Model Qualifier: PM564-R-AC, Symbol Tag: ABBAC500-ECOPM564-R-AC

期望的输出:

CSV file

0 个答案:

没有答案