Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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将XML数据写入CSV文件_Java_Xml_Maven_Csv_Jaxb - Fatal编程技术网

用Java将XML数据写入CSV文件

用Java将XML数据写入CSV文件,java,xml,maven,csv,jaxb,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 ElementDefin

我正在使用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
期望输出:


我会考虑使用类似的东西,但那是因为我懒惰…