有一个字符串操作类StringUtil要贴出来,之前代码里用到:

public class StringUtil {public static final String BLANKS = " \t\n";/**去掉首尾的空格、制表符、回车符*/public static String trim(String str){if(str==null){return str;}String ss = str.trim();for(int i=0;i<ss.length();i++){char c = ss.charAt(i);if(BLANKS.indexOf(c+"")==-1){ss = ss.substring(i);break;}}for(int i=ss.length()-1;i>=0;i--){char c = ss.charAt(i);if(BLANKS.indexOf(c+"")==-1){ss = ss.substring(0,i+1);break;}}return ss;}/*** 获取字符串str中位于两个相同字符ch之间的字符串,ch为在字符串str中出现的所有位置的前两个,例如* getSubStringBeetween("mimi...mi",'m') 返回字符串i* */public static String getSubStringBeetween(String str,char ch){String temp = str;int idx = temp.indexOf(ch+"");temp = temp.substring(idx+1);idx = temp.indexOf(ch+"");temp = temp.substring(0,idx);return temp;}/*** 得到字符ch在字符串src中的所有索引* */public static List<Integer> getIndexs(String src,char ch){List<Integer> list = new ArrayList<Integer>();if(src==null||src.length()==0){return list;}for(int i=0;i<src.length();i++){if(src.charAt(i)==ch){list.add(i);}}return list;}}

下面就是写了一个测试类:

public class Test {public static void main(String[] args) throws IOException {/*Document document = new Document();document.setEncoding(Document.GBK);document.setVersion(Document.DEFAULT_VERSION);document.addAttribute(new Attribute("standalone", "no"));document.setEncoding(Document.DEFAULT_ENCODING);Element root = new Element();document.addNode(root);root.setName("root");Attribute att1 = new Attribute("id", "1");Attribute att2 = new Attribute("sex", "female");root.addAttribute(att1);root.addAttribute(att2);AnnotationNode annotationNode = new AnnotationNode("xxxx...");document.addNode(annotationNode);Element e1 = new Element();e1.setName("e1");e1.addAttribute(new Attribute("age", "100"));
//        e1.setTextComment("哈哈,e1 text...");TextNode textNode1 = new TextNode("哈哈  e1 text...");e1.addSonNode(textNode1);Element e2 = new Element();e2.setName("e2");e2.addAttribute(new Attribute("婚否", "未婚"));e2.addAttribute(new Attribute("age", "19"));
//        e2.setTextComment("e2 text...");TextNode textNode2 = new TextNode("哈哈  e2 text...");e2.addSonNode(textNode2);TextNode textNode3 = new TextNode("哈哈  3333 text...");root.addSonNode(textNode3);root.addSonNode(e1);root.addSonNode(e2);System.out.println(document.toString());System.out.println("=====================");System.out.println(root.getChildNodes());document.saveTo("c:/test/mydemo.xml");System.out.println("=====================");System.out.println(DocumentUtil.getXMLString("c:/test/mydemo.xml"));System.out.println("------------------------------");System.out.println(Arrays.toString(getElementsByTag("e1")));*///        Document document =DocumentUtil.parse("c:test2/ScreenSaver.XML");System.out.println(document);
//         Element root = document.getRootNode();
//         Set<Node> advs = root.getNodesByName("Adv");
//         Iterator<Node> it = advs.iterator();
//         for(;it.hasNext();){
//             Element node = (Element) it.next();
//             if(node.containsAttribute(new Attribute("Img", "05.png"))){
//                 node.addAttribute(new Attribute("SDate", "2013-12-16"));
//                 node.addAttribute(new Attribute("EDate", "2020-12-16"));
//                 node.addAttribute(new Attribute("btnSDate", ""));
//                 node.addAttribute(new Attribute("btnEDate", ""));
//                 break;
//             }
//         }
//         Set<Node> nodes = root.getNodesByName("mimi");
//         Node[] mimi = new Node[nodes.size()];
//         nodes.toArray(mimi);
//         Element aimimi = (Element) mimi[0];
//         TextNode aimimiNode = (TextNode) aimimi.getNodeList().get(0);
//         aimimiNode.setText("爱咪咪呀。。。");
//         document.saveTo("c:test2/ScreenSaver.XML");/long t1 = System.currentTimeMillis();Document document2 =DocumentUtil.parse("c:test2/AndroidManifest.xml");document2.attributeLine = Document.SINGLE_LINE;document2.setRootNodeAttributeLine(false);document2.saveTo("c:test/AndroidManifest.xml");System.out.println(document2);long t2 = System.currentTimeMillis();System.out.println(t2-t1);}}

完成了!就是这么用的,可以生成xml文档,进行增删改查的操作。也可以解析xml文件。测试了一个2000多行的xml文件用了300ms,毕竟读取整篇文档进行字符串的操作挺耗性能的

XML解析以及增删改查的操作6相关推荐

  1. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例

    本文实例讲述了PHP实现对xml进行简单的增删改查(CRUD)操作.分享给大家供大家参考,具体如下: 假如有下面xml文件: 55.8 56 40 339 如何使用php对它进行CRUD?其实像这种简 ...

  2. spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

    今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...

  3. Mybatis入门:2(xml形式的增删改查)

    xml形式的增删改查 这里感觉没啥好讲的,照着代码自己敲一遍.认真再看看应该都懂的. Maven工程坐标 <?xml version="1.0" encoding=" ...

  4. python单链表操作_单链表的创建、增删改查等操作(Python实现)

    单链表的创建.增删改查等操作(Python实现) # 单链表 class Node: def __init__(self, elem): self.elem = elem self.next = No ...

  5. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File; import java.util.ArrayList; import java.util.L ...

  6. python对sqlite增删改查_Python操作sqlite3数据库 增删改查

    SQLite,是一款轻型的数据库,占用资源非常的低.这里记录下对sqlite3的增删改查相关操作,顺便复习一下SQL语句- -. 一.创建数据库 连接到一个现有的数据库.如果数据库不存在,那么它就会被 ...

  7. 动态网站作业4-JSP中实现数据库的增删改查的操作

    动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...

  8. web端获取微信小程序云数据库数据实现增删改查等操作

    获取小程序数据库 前言 一.微信小程序Web SDK 1.微信官方示例 2.未登录模式注意事项 二.完整流程演示 1.开启云数据库访问权限 2.编写云函数 3.web前端引入js 4.web页面js访 ...

  9. 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例

    用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...

最新文章

  1. 揭秘星际2人工智能AlphaStar:DeepMind科学家回应一切
  2. ffmpeg php win32,解决PHP5.3.x下ffmpeg安装配置问题
  3. linux inotify-tools 监控文件变化
  4. 深度学习中常见的损失函数
  5. 奇异值分解SVD与PCA
  6. python tkinter控件_python GUI作业:使用tkinter的重要控件
  7. grep和egrep的一些简单用法
  8. 单调有界定理适用于函数吗_《实变函数》——论有界变差函数
  9. c语言写报告抽象数据类型,数据结构(C语言版)第一章 抽象数据类型的表示与实现...
  10. 纯CSS的方法解决文字溢出与截断的问题
  11. 蓝桥杯 PREV-3 历届试题 带分数 Java版
  12. Adaboost入门教程——最通俗易懂的原理介绍
  13. 无法解析具体reference那个同名文件
  14. 【转载】CMMI与敏捷开发模式比较
  15. 实现百度语音识别功能
  16. 牛客网-调整数组顺序使奇数位于偶数前面
  17. 25种让你精力充沛的方法
  18. config配置解析
  19. windows应用启动java -jar
  20. 转载 Lua xpcall

热门文章

  1. python打印杨辉三角,直角形和正三角形的杨辉三角
  2. SSM框架在线拍卖系统项目
  3. 自动驾驶入门【概述】
  4. Unity3D中关于SendMessage的三种用法
  5. java sendmessage函数_Unity3D中的SendMessage使用(消息传递的三种方法)
  6. SendMessage跨线程和跨进程
  7. 软件著作权申请流程介绍
  8. Kotlin协程 - - -启动与取消、作用域
  9. 吞食鱼游戏蒙版图方法把鱼放到背景中
  10. Carbide编辑CP代码中的环境配置及编译