java上傳xml文件

1.增長工具類

/**
 * OffLineUtil.java
*/

package net.tfedu.problem.util;

import com.thoughtworks.xstream.XStream;
import net.tfedu.problem.dto.RootDto;
import net.tfedu.problem.dto.ScreenShotDtoAndAnswer;
import net.tfedu.problem.dto.ScreenshotAnswerDto;
import net.tfedu.problem.util.xstream.DateConverter;

/**
 * TODO(這裏用一句話描述這個類的做用)
 * <p>
 * TODO(這裏描述這個類補充說明 – 可選)
 *
 * @author   houpengwei(1379902378@qq.com)
 * @Date     2019年05月06日      
 */
public class OffLineUtil {

    /**
     * 
     * TODO 正式數據上傳成功之後在刪除,就是爲了測試書寫的方法
     * <p>
     * TODO(這裏描述這個方法詳情– 可選)
     *
     * @param xStream TODO(這裏描述每一個參數,若是有返回值描述返回值,若是有異常描述異常)
     */
    public static void xStreamUploadAliasEntity(XStream xStream) {
        xStream.registerConverter(new DateConverter());
        xStream.alias("root", RootDto.class);
        xStream.alias("screenshot", ScreenShotDtoAndAnswer.class);
        xStream.alias("screenshotAnswer", ScreenshotAnswerDto.class);
    }


}

2.對應的xml中的標籤增長對應的實體類

1)root對應的RootDto實體類

package net.tfedu.problem.dto;

import lombok.Data;

import java.util.List;

@Data
public class RootDto {
    private List<ScreenShotDtoAndAnswer> screenshotList;
}

 2)screenshot對應的實體類(由於他這個是一個集合中又包含集合,ScreenshotDto是他自己的實體,只不過又封裝了一個集合對象在實體裏面

package net.tfedu.problem.dto;

import lombok.Data;

import java.util.List;

@Data
public class ScreenShotDtoAndAnswer extends ScreenshotDto{
   private List<ScreenshotAnswerDto> screenshotAnswerList;
}

3)screenshotAnswer對應的實體類

/**
 * ScreenshotAnswerDto.java
 * net.tfedu.problem.dto
*/
package net.tfedu.problem.dto;

import java.util.Date;

import com.we.core.db.entity.BaseEntity;
import lombok.Data;
import java.io.Serializable;

/**
 * 截圖作題答案表Dto
 *
 * @author houpengwei
 * @Date 2019-05-06
 */
@Data
public class ScreenshotAnswerDto extends BaseEntity {

    /**
     * 匹配id
     */
    private long id;
    /**
     * 截圖作題Id
     */
    private long screenshotId;
    /**
     * 學生用戶id
     */
    private long studentId;
    /**
     * 該題學生回答
     */
    private String answer;
    /**
     * 學生回答是否正確(默認爲0 ,1正確2錯誤3半對半錯)
     */
    private int state;
    /**
     * 學生上傳附件路徑及文件名
     */
    private String filePath;
    /**
     * 老師評語
     */
    private String remark;
    /**
     * 提交時間
     */
    private Date submitTime;
    /**
     * 0單選1文本 2數碼筆3圖片
     */
    private int answerType;
    /**
     * 用戶答題用時 默認秒
     */
    private int useTime;
    /**
     * 錯誤類型id
     */
    private long errorTypeId;
    /**
     * 知識點
     */
    private String navigationCode;
}

3.獲取上傳的xml

 XStream xStream = new XStream(new DomDriver());

 OffLineUtil.xStreamUploadAliasEntity(xStream);

 RootDto rootDto = (RootDto) xStream.fromXML(problemXml);

4.使用rootDto.get獲取封裝的對象

相關文章
相關標籤/搜索