做网站有哪些主题,泰州做网站软件,js 网站开发,昌平石家庄网站建设1.Document
导入dom4j的步骤
去官网下载 zip 包。http://www.dom4j.org/ 在项目中创建一个文件夹#xff1a;lib将dom4j-2.1.1.jar文件复制到 lib 文件夹在jar文件上点右键#xff0c;选择 Add as Library - 点击OK在类中导包使用
得到Document对象
步骤#xff1a;…1.Document
导入dom4j的步骤
去官网下载 zip 包。http://www.dom4j.org/ 在项目中创建一个文件夹lib将dom4j-2.1.1.jar文件复制到 lib 文件夹在jar文件上点右键选择 Add as Library - 点击OK在类中导包使用
得到Document对象
步骤
文件Contact.xml放在src目录下 创建一个SAXReader对象用于读取 xml 文件从类路径下加载xml文件得到输入流对象通过 SAXReader对象的read(InputStream in )方法从输入流中读取生成文档对象 代码
/**1. 得到文档对象2. 得到根元素*/public static void main(String[] args) throws FileNotFoundException, DocumentException {//1. 创建类: 读取XML文件SAXReader reader new SAXReader();//不建议这么写//FileInputStream in new FileInputStream(D:\\IdeaWork\\JavaEE105\\day23-xml\\src\\Contacts.xml);//src目录就是编译以后的类路径从类路径下得到输入。InputStream in Demo3Document.class.getResourceAsStream(/Contacts.xml);//2.通过reader来读取xml, 生成了一个document对象Document document reader.read(in);//3. 输出文档System.out.println(document);//4. 得到文档以后通过文档得到根元素Element rootElement document.getRootElement();System.out.println(rootElement);}Document常用方法
方法名功能说明Element getRootElement()通过文档对象得到根元素String getName()获取元素名ListElement elements()获取所有子元素ListElement elements(String name)获取知名名字的多个子元素
2.Attribute
Attribute常用方法
方法名功能说明String getName()得到属性的名字String getValue()得到属性的值
得到属性值的两种方式 先得到Attribute对象再通过Attribute对象得到属性的值通过方法attributeValue()直接得到属性值 案例
使用2种方式得到contact上id属性值在contact元素上添加一个vip的属性值为true/false得到contact上所有的属性名和属性值
效果
代码 public static void main(String[] args) throws DocumentException {//1. 创建SAXReaderSAXReader reader new SAXReader();//2. 调用read 方法读取 xml 文件Document document reader.read(Demo4Attribute.class.getResourceAsStream(/Contacts.xml));//3. 得到根元素Element rootElement document.getRootElement();//4. 获得第1个contact元素对象Element contact rootElement.element(contact);//5. 通过方式1得到contact上id属性值Attribute idAttr contact.attribute(id);String idValue idAttr.getValue();System.out.println(idValue);//6. 通过方式2得到contact上id属性值String id contact.attributeValue(id);System.out.println(id);//7. 得到contact上所有的属性名和属性值ListAttribute attributes contact.attributes();for (Attribute attribute : attributes) {System.out.println(属性名 attribute.getName());System.out.println(属性值 attribute.getValue());}}获取文本内容 通过元素对象得到文本字符串得到文本元素的前提先得到元素对象
注意 空格、换行、制表符也是属于文本的一部分所以在解析xml文件的时候格式化XML文件要注意。 元素中得到文本有关的方法
Element**元素中的方法说明String getText()得到元素中文本String elementTextTrim(元素名)得到子元素中文本去掉先后空格String elementText(元素名)得到子元素中文本
需求 得到第1个contact中的name元素输出name元素的文本。分别通过下面三个方法得到
通过getText()方法得到直接得到元素的内容得到去掉空格的文本
代码;
public static void main(String[] args) throws DocumentException {// 1.创建SAXReaderSAXReader reader new SAXReader();// 2.调用read 方法读取 xml 文件Document document reader.read(Demo5Text.class.getResourceAsStream(/Contacts.xml));// 3.得到根元素Element rootElement document.getRootElement();// 得到contact标签Element contact rootElement.element(contact);// 得到name标签中的文本Element name contact.element(name);System.out.println(name.getText());// 得到子元素的文本System.out.println(contact.elementText(name));// 得到子元素的文本并且去掉前后空格System.out.println(contact.elementTextTrim(name));}XML解析案例
目标
利用 Dom4j 的知识将Contact.xml 文件中的联系人数据封装成List集合其中每个元素是实体类Contact。打印输出 List 中的每个元素。
运行效果 数据准备
Contact.xml
?xml version1.0 encodingUTF-8?
contactListcontact id1name潘金莲/namegender女/genderemailpanpanitcast.cn/email/contactcontact id2name武松/namegender男/genderemailwusongitcast.cn/email/contactcontact id3name武大狼/namegender男/genderemailwudaitcast.cn/email/contact
/contactListContact.java实体类 // 联系人实体类
public class Contact {private int id;private String name;private String gender;private String email;// 省略构造方法get、set、tostring}代码
public static void main(String[] args) throws DocumentException {//1. 得到SaxReaderSAXReader reader new SAXReader();//2. 得到文档对象Document document reader.read(Demo6Contact.class.getResourceAsStream(/Contact.xml));//3. 得到根元素Element rootElement document.getRootElement();//4. 创建集合ListContact list new ArrayList();//5. 得到所有联系人ListElement contactElements rootElement.elements();//每个就是一个联系人for (Element contactElement : contactElements) {//创建一个联系人Contact contact new Contact();//System.out.println(contactElement.getName()); //打印标签名//得到id属性值将字符串转成int类型int id Integer.parseInt(contactElement.attributeValue(id));contact.setId(id);//得到子元素中文本contact.setName(contactElement.elementText(name));contact.setGender(contactElement.elementText(gender));contact.setEmail(contactElement.elementText(email));//将当前对象添加到集合中list.add(contact);}//打印集合中所有的联系人for (Contact contact : list) {System.out.println(contact);}}