xml(code)
来源:互联网 发布:windows桌面图标透明 编辑:程序博客网 时间:2024/06/06 03:17
使用dom4j读取xml的标签
/** * getRootElement(): 获取根标签 * getName(): 获取标签名称 * element("名称"): 获取第一个指定名称的子标签 * elements("名称"): 获取指定名称的所有的子标签 * elements(): 获取所有子标签 *///1)创建xml解析器对象SAXReader reader = new SAXReader(); // ctrl+2 放手 +l//2)读取xml文件Document doc = reader.read(new File("./src/contact.xml"));/** * 读取标签 *///1.1 读取根标签Element rootElem = doc.getRootElement();System.out.println(rootElem);//1.2 获取标签名称System.out.println(rootElem.getName());//1.3 获取第一个子标签(根据指定的名称获取第一个子标签)Element conElem = rootElem.element("contact");System.out.println(conElem);System.out.println("==============");//1.4 获取所有子标签(根据指定的名称获取所有同名子标签)List<Element> list = rootElem.elements("contact");//遍历List//几种方式?//1)传统for循环/*for(int i=0;i<list.size();i++){ list.get(i); //根据角标获取指定对象}*///2)for-each循环for(Element e: list){ System.out.println(e);}//3)迭代器/*Iterator it = list.iterator();while(it.hasNext()){ //hasNext(): 判断是否有下一个元素 it.next(); //next():取出当前对象}*/System.out.println("================");//1.4 获取所有子标签(不指定名称)List<Element> eList = rootElem.elements();for(Element e:eList){ System.out.println(e);}System.out.println("===========");/** * 注意,如果需要获取孙标签,首先得拿到子标签,再从子标签来获取孙标签!!! */Element nameElem = rootElem.element("contact").element("name");System.out.println(nameElem);
使用dom4j获取xml上的属性信息
//1)创建xml解析器SAXReader reader = new SAXReader();Document doc = reader.read(new File("./src/contact.xml"));/** * 读取属性 * 注意:获取属性,必须先得到属性所在的标签 */Element conElem = doc.getRootElement().element("contact");//1.1 在标签上获取属性值(根据属性名称获取对应的属性值)String value = conElem.attributeValue("id");System.out.println(value);/** * 练习: 拿到id=002属性 */Element conElem2 = (Element)doc.getRootElement().elements().get(1);System.out.println(conElem2.attributeValue("id"));//1.2 根据属性名称获取属性对象//拿到标签对象conElem = doc.getRootElement().element("contact");//拿到属性对象Attribute idAttr = conElem.attribute("id");//通过属性对象拿到 属性名String idName = idAttr.getName();//通过属性对象拿到 属性值String idValue = idAttr.getValue();System.out.println(idName+"="+idValue);System.out.println("===============");//1.3 获取标签的所有属性对象conElem = doc.getRootElement().element("contact");List<Attribute> attrList = conElem.attributes();for (Attribute attr : attrList) { System.out.println(attr.getName()+"="+attr.getValue());}
使用dom4j获取xml的文本信息
SAXReader reader = new SAXReader();Document doc = reader.read(new File("./src/contact.xml"));/*** 注意:* 在xml文件中,空格和换行会作为xml的内容被解析到。* xml中空格和换行和java代码中空格换行不一样。* java代码中的空格和换行是没意义的,为了代码的格式格式好看而已。*/Element con = doc.getRootElement().element("contact");System.out.println(con.getText());/*** 读取文本:* 注意: 获取文本,要先获取文本所在的标签对象*///1.1 拿到所在标签上的文本内容Element nameElem = doc.getRootElement(). element("contact").element("name");String content = nameElem.getText();System.out.println(content);//1.2 通过父标签获取指定子标签的文本内容Element conElem = doc.getRootElement().element("contact");content = conElem.elementText("gender");System.out.println(content);
使用dom4j把xml文件的信息封装成对象
//目标: contact.xml信息 -> List集合//1)读取xml文件SAXReader reader = new SAXReader();Document doc = reader.read(new File("./src/contact.xml"));//2)创建List对象List<Contact> list = new ArrayList<Contact>(); // List接口-> ArrayList/LinkedList/Vector//3)把xml信息->list对象//3.1 读取到所有contact标签List<Element> conList = doc.getRootElement().elements("contact");for (Element elem : conList) { //3.2 创建Contact对象 Contact con = new Contact(); //3.3 把contact标签数据放入contact对象中 con.setId(elem.attributeValue("id")); con.setName(elem.elementText("name")); con.setGender(elem.elementText("gender")); con.setPhone(elem.elementText("phone")); con.setEmail(elem.elementText("email")); con.setAddress(elem.elementText("address")); //3.4 把contact对象放入list对象 //保存数据 list.add(对象) list.add(con);}//4)输出for (Contact con : list) { System.out.println(con);}
写出一个xml文件
/** * 修改xml信息的步骤 * 1)读取到原来的xml文件(document对象) * 2)操作document对象,改变xml信息(docuement对象) * 3)把修改后的document对象写出到xml文件中(覆盖原来的文件) */ Document doc = new SAXReader().read(new File("./src/contact.xml")); /** * 输出流 * 字符输出流: * Writer -> FileWriter/BufferedWriter * 方法: * write(char c): 写出一个字符 * write(char[] data): 写出多个字符 * write(String str): 写出一个字符串 * 字节输出流 * OutputStream -> FileOutputStream/BufferedOutputStream/ObjectOutputStream * write(byte) :写出一个字节 * write(byte[] data): 写出多个字节 */ /** * 把内存的document对象写出到硬盘的xml文件 */ //创建输出流 OutputStream outStream = new FileOutputStream("e:/contact.xml"); //1)创建输出对象 XMLWriter writer = new XMLWriter(outStream); //2)写出数据 writer.write(doc);
写出xml文件的细节
Document doc = new SAXReader().read(new File("./src/contact.xml")); //创建输出流 OutputStream outStream = new FileOutputStream("e:/contact.xml"); //一、设置输出的格式 //OutputFormat format = OutputFormat.createCompactFormat();//紧凑的格式.空格和换行去掉了!! 系统上线了使用 OutputFormat format = OutputFormat.createPrettyPrint();//漂亮的格式。包含空格和换行。 测试时使用 //二、 设置输出的编码格式 /**作用: * 1)影响了xml的文档声明的encoding编码 * 2)影响了xml内容保存的编码 */ format.setEncoding("gbk"); //1)创建输出对象 XMLWriter writer = new XMLWriter(outStream,format); //2)写出数据 writer.write(doc);
修改xml文件:
添加: 文档 标签 属性
修改: 属性值,文本内容
删除: 标签 属性
public class Demo3 { public static void main(String[] args) throws Exception { //add(); //edit(); Document doc = new SAXReader().read(new File("./src/contact.xml")); /** * 删除 */ /*//1.1 删除标签 Element conElem = doc.getRootElement().element("contact"); //conElem.detach(); //自杀 conElem.getParent().remove(conElem); //他杀*/ //1.2 删除属性 Attribute idAttr = doc.getRootElement().element("contact").attribute("id"); idAttr.detach(); //1.2 把文档写出到xml文件中 OutputStream out = new FileOutputStream("e:/contact.xml"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(out,format); writer.write(doc); } private static void edit() throws DocumentException, FileNotFoundException, UnsupportedEncodingException, IOException { Document doc = new SAXReader().read(new File("./src/contact.xml")); /** * 修改 */ //修改属性 //1.1 先得到属性对象,再调用方法修改属性值 /*Element conElem = doc.getRootElement().element("contact"); Attribute idAttr = conElem.attribute("id"); idAttr.setValue("003");*/ //1.2 在标签中添加同名的属性,覆盖属性值 Element conElem = doc.getRootElement().element("contact"); conElem.addAttribute("id", "004"); //修改文本 Element nameElem = doc.getRootElement().element("contact").element("name"); nameElem.setText("王五"); //1.2 把文档写出到xml文件中 OutputStream out = new FileOutputStream("e:/contact.xml"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(out,format); writer.write(doc); } /** * 添加 * @throws FileNotFoundException * @throws UnsupportedEncodingException * @throws IOException */ private static void add() throws FileNotFoundException, UnsupportedEncodingException, IOException { /** * 添加 */ //1.1 添加空文档 Document doc = DocumentHelper.createDocument(); //1.2 添加标签 Element conListElem = doc.addElement("contact-list"); //doc.addElement("contact-list"); //不能添加两个根标签!!! Element conElem = conListElem.addElement("contact"); conElem.addElement("name"); //1.3 添加属性 conElem.addAttribute("id", "001"); conElem.addAttribute("name","eric"); //1.2 把文档写出到xml文件中 OutputStream out = new FileOutputStream("e:/contact.xml"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); XMLWriter writer = new XMLWriter(out,format); writer.write(doc); }}
阅读全文
0 0
- xml(code)
- XMl - xerces code sample
- code pieces xml parse
- test code read xml
- intellij code style setting(xml)
- eclipse formatter.xml Code Templates
- XML Source Code For SAP ABAP
- XML+XSLT 转化成HTML(code)
- XML 转化成Data Object(code 修改)
- XML+ code for DOM and SAX
- [Source Code]使用Dom和dom4j读取XML文件
- Tree in Combo Box example code (using HTTPService and XML)
- Example Code of Using XML Parser in Symbian OS
- 远程读取xml文件详解!-see the code!
- Java Code Examples for javax.xml.bind.annotation.XmlSchema
- java.lang.ClassFormatError: Absent Code attribute...javax/xml/rpc/ServiceException
- code
- code
- Python学习--------列表(一)
- Leetcode 算法题02
- AlphaZero成功了,AI要取代人类了?
- 十六进制转换为十进制的效率问题
- Java实现URLEncode编码
- xml(code)
- 15.3.1 FileReader
- 页面布局 --- 题图文字布局
- Fragment基础知识整理
- Linux 常用命令(二)
- bzoj1068压缩
- window下svn安装与其服务器搭建
- IDEA入门级使用教程
- hdu 2509 博弈