用Java将XML数据写入CSV文件
我正在使用netbeans 8.0.2中的Maven项目来读取XML文件。xml文件的模板已作为依赖项添加到项目的settings.xml文件中。我能够在控制台中使用JAXB成功地读取文件并打印其输出。我想在CSV文件中写入相同的控制台输出。请帮忙 Java代码用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
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
期望输出:
我会考虑使用类似的东西,但那是因为我懒惰…