野子电竞数据官网改版https://www.xxe.io/全新登场
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
/**
- @API: 19.图文直播
- @Website: https://www.xxe.io/
*/
public class FootballTextLive {
public static void main(String[] args) { try { String content = getContent(); JAXBContext jaxbContext = JAXBContext.newInstance(TextLiveList.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); TextLiveList list = (TextLiveList) unmarshaller.unmarshal(new ByteArrayInputStream(content.getBytes())); list.getTextLiveList().forEach(item -> System.out.println(item)); } catch (Throwable t) { t.printStackTrace(); }}/** * 获取API返回内容 * * Note: 这里为了方便测试我使用了一份本地文件,使用时应替换为真实接口返回内容 */private static String getContent() { try { StringBuilder builder = new StringBuilder(); List<String> lines = Files.readAllLines(Paths.get("./src/main/resources/FootballTextLive.xml"), StandardCharsets.UTF_8); lines.forEach(line -> builder.append(line)); return builder.toString(); } catch (Throwable t) { t.printStackTrace(); return ""; }}@XmlRootElement(name = "list")public static class TextLiveList{ @XmlElement(name = "match") private List<TextLive> textLiveList; public List<TextLive> getTextLiveList() { return textLiveList; }}@XmlRootElementpublic static class TextLive { @XmlElement private String ID; @XmlElement private String content; @XmlElement private String time; @Override public String toString() { return "TextLive{" + "ID='" + ID + '\'' + ", content='" + content + '\'' + ", time='" + time + '\'' + '}'; } public String getID() { return ID; } public String getContent() { return content; } public String getTime() { return time; }}
}