1、引入org.xmind.core_XXX.jar包;准備一個test.xmind文件,內容如圖所示:
2、Java代碼
package com.dave.util;
import org.xmind.core.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class XmindUtil {
public static void main(String[] args) throws IOException, CoreException {
String rootPath = System.getProperty("user.dir");
String xmindPath = rootPath + "\\file\\靈薪付小程序2.2版本.xmind";
List<String> lists = xmindToList(xmindPath);
for(String list:lists){
System.out.println(list);
}
}
/**
* 獲取工作簿
* IWorkbook:表示整個思維導圖
* @param xmindPath:xmind文件路徑
*/
public static IWorkbook getIWorkbook(String xmindPath) throws IOException, CoreException {
if (builder == null){
builder = Core.getWorkbookBuilder();// 初始化builder
}
return builder.loadFromFile(new File(xmindPath));
}
/**
* 獲取默認工作表的根主題
* xmind關系:工作簿(IWorkbook)——>工作表(ISheet)——>主題(ITopic)
* @param iWorkbook:xmind工作簿
*/
public static ITopic getRootTopic(IWorkbook iWorkbook){
return iWorkbook.getPrimarySheet().getRootTopic();
}
/**
* 獲取從根目錄到每一個葉子節點的的路徑
*/
public static List<String> getAllPath(ITopic rootTopic){
return getAllPathIter(rootTopic.getTitleText() ,rootTopic.getAllChildren());
}
public static List<String> getAllPathIter(String parentContext,List<ITopic> childrens){
for(ITopic children:childrens){
if(children.getAllChildren().size() == 0){
list.add(parentContext+" — "+children.getTitleText().replaceAll("\r|\n",""));
}else {
getAllPathIter(parentContext+" — "+children.getTitleText().replaceAll("\r|\n",""), children.getAllChildren());
}
}
return list;
}
/**
* 解析Xmind文件
*/
public static List<String> xmindToList(String xmindPath) throws IOException, CoreException {
return getAllPath(getRootTopic(getIWorkbook(xmindPath)));
}
private static IWorkbookBuilder builder = null;
private static List<String> list = new ArrayList<>();
}
3、運行結果
搜索客戶名稱時顯示客戶層級 —— 功能 —— 步驟:輸入客戶名或登錄賬號,點擊客戶搜索按鈕 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 首頁搜索框 —— 精准搜索 —— 搜索唯一的賬號 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 首頁搜索框 —— 模糊匹配 like "關鍵字%" —— 匹配符合條件的所有賬號 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 首頁搜索框 —— 模糊匹配 like "關鍵字%" —— 分頁顯示,每頁10條數據 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 首頁搜索框 —— 搜索不到結果 —— 列表顯示為空 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 賬號列表頁搜索框 —— 精准搜索 —— 搜索唯一的賬號 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 賬號列表頁搜索框 —— 模糊匹配 like "關鍵字%" —— 匹配符合條件的所有賬號 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點1:搜索操作 —— 賬號列表頁搜索框 —— 搜索不到結果 —— 列表顯示為空 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 頁面樣式 —— 新增Account Level列 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 搜索結果 —— 無搜索結果 —— 列表為空 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 搜索結果 —— 有搜索結果 —— 當前登錄賬戶 —— 僅顯示當前賬戶,Level1 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 搜索結果 —— 有搜索結果 —— 當前登錄賬戶 —— 當前登錄賬戶操作列為空(無more、monitor) 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 搜索結果 —— 有搜索結果 —— 子賬戶 —— 顯示登錄賬戶到當前子賬戶的所有賬戶及層級,最上級(登錄賬號)操作列為空 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 場景 —— 最大搜索層級,能夠准確展示 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 場景 —— 切換到其它賬戶,對應層級變化 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 場景 —— 模糊匹配大量的搜索結果,快速准確的顯示所有的結果 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點2:賬戶搜索列表頁 —— 場景 —— 在搜索列表修改賬戶信息后搜索,刷新搜索結果列表頁,准確性檢查(考慮模糊匹配大量搜索結果) 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— english 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— русский язык 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— Español 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— ViệtName 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— Монгол хэл 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— Português 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點3:其它語種,簡單搜索,查看賬戶列表頁樣式 —— Türkiye 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點4:常用瀏覽器兼容性 —— chrome 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點4:常用瀏覽器兼容性 —— firefox 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點4:常用瀏覽器兼容性 —— IE 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點4:常用瀏覽器兼容性 —— 360 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點4:常用瀏覽器兼容性 —— Sougou 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點4:常用瀏覽器兼容性 —— QQ 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點5:中文版賬號搜索不受影響 —— 風控 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點5:中文版賬號搜索不受影響 —— RMS 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點5:中文版賬號搜索不受影響 —— 電動車(兩個新域名) 搜索客戶名稱時顯示客戶層級 —— 功能 —— 檢查點6:設備搜索,我的客戶快速搜索不受影響