大家好,欢迎来到IT知识分享网。
摘自:XML格式
1,最简单的XML格式
XML数据最简单的格式是:
- 开始标签:<tag>
- 标签的属性,属性值用双引号:<tag id=”1″ name=”azure”>,在单个节点中,属性名不能重复,属性之间使用空格分隔,在开始标签中,才能设置属性;
- 结束标签:</tag>,结束标签不能有属性;
- 子节点:在开始标签和结束标签,可以包含节点,叫做子节点;
- 节点值:在开始标签和结束标签的标量值,叫做节点值;
范例:
<Expression ID="1" TaxonomyID="1"> <SubExpression ID="1" OperandType="Tag" Operator="and"> <Oprand ID="268819" Name="abuse" /> <Oprand ID="277029" Name="mongohq" /> <Oprand ID="516813" Name="access" /> </SubExpression> <SubExpression ID="2" OperandType="Tag" Operator="and"> <Oprand ID="283839" Name="reviews" /> <Oprand ID="697348" Name="retention" /> </SubExpression> <SubExpression ID="3" OperandType="Tag" Operator="not"> <Oprand ID="281556" Name="richfaces" /> <Oprand ID="2993766" Name="rgp" /> </SubExpression> </Expression>
示例:
<?xml version="1.0" encoding="UTF-8"?> <root> <sub className="Person"> <sub2 name = "name" value="欣欣"> </sub2> <sub2 name = "age" value="12"> </sub2> <sub2 name = "hobby" value="[看书,爬山,听音乐]"> </sub2> </sub> <sub className="User"> <sub2 name = "login_name" value="wshxq0218"> </sub2> <sub2 name = "login_password" value="123456789"> </sub2> </sub> </root>
package beanutilcase; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import beanUtilsDemo01.Person; public class Demo { public static void main(String[] args) throws Exception { Person p = new Person(); User u = new User(); // 创建解析器对象 SAXReader sax = new SAXReader(); // 读取文档,并获取根节点 Document doc = sax.read("data.xml"); Element root = doc.getRootElement();// // 获取根节点下的一级子元素 List<Element> listFirst = root.elements(); // 迭代 for (Element e : listFirst) { // 获取一级子元素的属性值 String path = e.attributeValue("className"); // 获取二级子元素 List<Element> listSecond = e.elements(); // 定义map集合装属性值 Map<String, Object> map = new HashMap<>(); for (Element es : listSecond) { // 获取二级子元素的两个属性值 String name = es.attributeValue("name"); String value = es.attributeValue("value"); map.put(name, value); } // 利用beanutils工具类进行封装 // 判断是否为person if (path.matches(".*Person$")) { BeanUtils.populate(p, map); } else { BeanUtils.populate(u, map); } } System.out.println(p); System.out.println(u); } }
//创建beanUtilsDemo01包 package beanUtilsDemo01; import java.util.Arrays; public class Person { // 属性 private String name; private int age; private String[] hobby; // 构造方法 public Person() { super(); }
// getter/setter省略
// 覆写toString @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", hobby=" + Arrays.toString(hobby) + "]"; } }
package beanutilcase; public class User { // 属性 private String login_name; private String login_password; // getter/setter // 构造方法 public User() { super(); } // 覆写toString @Override public String toString() { return "User [login_name=" + login_name + ", login_password=" + login_password + "]"; } }
输出结果:
Person [name=欣欣, age=12, hobby=[看书, 爬山, 听音乐]]
User [login_name=wshxq0218, login_password=123456789]
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33911.html