1.xml文件 product.xml
<?xml version="1.0" encoding="UTF-8"?>
<template>
<startRow>3</startRow>
<columns>
<column>
<col>0</col>
<notNull>true</notNull>
<customValue>true</customValue>
<valueField>supplierId</valueField>
</column>
<column>
<col>1</col>
<notNull>true</notNull>
<valueField>money</valueField>
</column>
</columns>
</template>
2.新建对应的实体类 TempliateConfig.java和TemplateColumn.java
package com.dm.krystal.utils.xml; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import java.io.Serializable; @XmlAccessorType(XmlAccessType.FIELD) public class TemplateColumn implements Serializable { @XmlElement(name = "col") int col; @XmlElement(name = "valueField") String valueField; @XmlElement(name = "notNull") boolean notNull = false; @XmlElement(name = "customValue") boolean customValue = false; //getset略 }
package com.dm.krystal.utils.xml; import javax.xml.bind.annotation.*; import java.util.List; @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "template") public class TempliateConfig { @XmlElement(name = "startRow") int startRow; @XmlElementWrapper(name="columns") @XmlElement(name = "column") List<TemplateColumn> columns; //getset略 }
3.main 方法
package com.dm.krystal.utils.xml;
import com.dm.krystal.utils.io.ResourceUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
public class XmlTest {
static TempliateConfig templiateConfig;
public TempliateConfig getTemplateConfig() {
return templiateConfig;
}
//xml测试使用
public static void main(String[] args) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(TempliateConfig.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
templiateConfig = (TempliateConfig) jaxbUnmarshaller.unmarshal(ResourceUtils.getResourceFileStream("classpath:excel/product.xml"));
templiateConfig = (TempliateConfig) jaxbUnmarshaller.unmarshal(ResourceUtils.getFile("classpath:excel/product.xml"));
templiateConfig = (TempliateConfig) jaxbUnmarshaller.unmarshal(ResourceUtils.getURL("classpath:excel/product.xml"));
templiateConfig.getColumns();
System.out.println(templiateConfig.getColumns().get(0).getCustomValue());
// configSucc = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
输出