pom.xml
<dependencies>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
<!--dom4j-->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!--單元測試-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--firstjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
Dom4jUtil
public class Dom4jUtil {
/**
* 根據XML文件路徑獲取Document對象
* @param pathUrl XML文件路徑
* @return document
*/
public static Document getDocument(String pathUrl){
//創建SAXReader對象
SAXReader reader = new SAXReader();
Document document = null;
try {
//讀取XML文件並返回document對象
document = reader.read(pathUrl);
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
/**
* 展示文檔內容
* @param document 文檔對象
*/
public static void showElements(Document document){
//獲取文檔的根節點
Element rootElement = document.getRootElement();
//獲取根節點下的子節點(迭代器的方式)
Iterator<Element> it = rootElement.elementIterator();
//迭代器迭代
while (it.hasNext()){
//獲取子節點
Element element = it.next();
//element.getName()獲得當前元素的標籤名
String name = element.getName();
System.out.println("當前元素的標籤名:"+name);
//獲取子節點的屬性上的值並打印
//String id = element.attribute("id").getValue();
String id = element.attributeValue("id");
System.out.println(id);
//獲取根節點下的子節點(集合的方式)
/*
* element.elements("標籤名")
* 獲得element元素下的所有標籤名與方法參數一樣的元素
* */
List<Element> childElement = element.elements();
for (Element e : childElement) {
//只有最底層的元素getText()纔會有值
//獲得當前元素中包含的值
//例如 <a>aaa</a> aaa就是我們獲得的值
System.out.println(e.getText());
}
System.out.println("----------------------------");
}
}
/**
* 根據文檔對象創建XML文件
* @param document 文檔對象
* @throws IOException
*/
public static void createXMLByDocument(Document document) throws IOException {
//創建文件
String filePath = "d:\\studentInfo.xml";
File file = new File(filePath);
if (!file.isFile()){
file.createNewFile();
}
//創建輸出流對象
FileOutputStream fos = new FileOutputStream(file);
//獲得格式化對象
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
//參數: 輸出流,格式化對象
XMLWriter writer = new XMLWriter(fos,outputFormat);
//寫出文件
writer.write(document);
/*
* 多個流關閉流程
* 向上依次關閉
* */
writer.close();
fos.close();
}
}
JsonConvert
public class JsonConvert {
/**
* 將json字符串轉換爲對象
* @param jsonStr json字符串
* @param t
* @param <T> 轉化成的對象類型
* @return 返回值類型
*/
public static <T> T jsonToObject(String jsonStr, Class<T> t) {
return JSON.parseObject(jsonStr, t);
}
/**
* 將對象轉換爲字符串
*
* @param o
* @return
*/
public static String objectToString(Object o) {
return JSON.toJSONString(o);
}
}
Dom4jTest.class
public class Dom4jTest {
@Test
public void getDocument(){
String pathUrl = "src\\main\\resources\\doc\\student.xml";
Document document = Dom4jUtil.getDocument(pathUrl);
System.out.println(document);
Dom4jUtil.showElements(document);
}
@Test
public void createXMLByDocument() throws IOException {
//創建新的文檔對象
Document document = DocumentHelper.createDocument();
//添加根節點(元素)
/*
* 注意: 不是最底層元素不要設置 .addText()
* */
Element rootElement = document.addElement("class");
rootElement.addElement("student").addAttribute("id","001")
.addAttribute("classNo","Java1902").addText("James Strachan");
rootElement.addElement("student").addAttribute("id","002")
.addAttribute("classNo","Java1902").addText("James Strachan");
Dom4jUtil.createXMLByDocument(document);
}
}
FastJsonTest.class
public class FastJsonTest {
@Test
public void jsonToObject(){
//拼接json字符串
String jsonStr = "{\"userId\":" + "\"1\"," +
"\"userName\":" + "\"坤坤\"," +
"\"age\":" + "\"22\"}";
Object o = JsonConvert.jsonToObject(jsonStr, User.class);
System.out.println(o);
}
@Test
public void objectToJson(){
User user = new User();
user.setUserId(1);
user.setUsername("陽陽");
user.setAge(22);
String s = JsonConvert.objectToString(user);
System.out.println(s);
}
}