XML简介
可扩展标记语言——eXtensible Markup Language
用户可以自己定义语言标记,只要有开始和闭合标签即可。
xsl装饰、修饰xml的显示结果。
dtd约束xml文件中的标记。
XML的优点:
1、xml可以让数据和标记分离。
2、异质信息互通
3、机器语言
4、用交流语言替代html装饰语言
5、简单易用
6、可以自定义、可扩展
XML和HTML比较
比较内容HTMLXML
可扩展性不具有扩展性、标记固定是元标记语言,可以定义新标记,用户可以自定义标记
侧重点侧重于信息的表现形式为什么格式被关注侧重于结构化的描述信息,数据是什么为XML所关注
语法不严格(嵌套、配对)严格嵌套、配对,并按照DTD要求输出
可读性、可维护性难于阅读和维护结构清晰,便于阅读维护
数据本身、显示数据和显示合为一处数据与显示分离
重用性低可重用性高
JDOM操作XML
JDOM可以很方便的操作XML文档,完成XML内容的创建、修改,已经遍历Document文档中的XML元素,完成查询等。下面我们就用JDOM完成这些功能。
准备
<!-- https://mvnrepository.com/artifact/org.jdom/jdom -->
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1.3</version>
</dependency>
XML例子

Demo
import com.jdd.basedata.commons.util.WinNumStringUtil;
import org.apache.commons.collections.CollectionUtils;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Cp500Util {
public static void main(String[] args) {
Map<String, String> Kuai10winNumber = getWinNumber("http://kaijiang.500.com/static/info/kaijiang/xml/hbsyxw/{yyyyMMdd}.xml", 78);
for (String o : Kuai10winNumber.keySet()) {
System.out.println(o + "---------->" + Kuai10winNumber.get(o) + "---");
}
}
private static Map<String, String> getWinNumber(String url, Integer lottery) {
Map<String, String> map = new HashMap<>();
String format = new SimpleDateFormat("yyyyMMdd").format(new Date());
SAXBuilder builder = new SAXBuilder();
url = url.replace("{yyyyMMdd}", format);
try {
Document document = builder.build(url);
//获取根目录
Element root = document.getRootElement();
List<Element> row = root.getChildren("row");
if (CollectionUtils.isNotEmpty(row)) {
for (Element o : row) {
String[] cs = o.getAttributeValue("opencode").split(",");
map.put(o.getAttributeValue("expect").replace("-", "").trim(), WinNumStringUtil.sortStrings(o.getAttributeValue("opencode").toString()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}
网友评论