xml文件指定位置插入节点+小结
2013-08-30 18:54
549 查看
xml中插入节点,首先是在哪里插入,这里说的是在哪个节点后面插入,
用Xpath取到该节点,获取到该节点后,再与根节点下所有的节点循环比较,记录比较次数得到节点的索引也就是节点的位置
在调用一个方法Element.addContent(int index,Content newContent); 指定位置插入节点,不过取到的节点位置最好输出一下,
以免插入错误的时候不知道。
public static int getInsertIndex(Element rootEle,String contentName){
/**从root根节点第一个节点到指定节点的节点数(包括所有节点包括元素节点和其他节点,下同)*/
int size = 0;
/**节点绝对路径*/
String selectStr = "/web-app/"+contentName+"[last()]"; //也可以是其他的字符串,可通过id或name属性取到指定节点
/**查找到的指定节点*/
Content lastNode = null;
try {
lastNode = (Content)XPath.selectSingleNode(rootEle,selectStr); //获取与该节点名字(参数 contentName)相同的最后一个节点
} catch (JDOMException e) {
e.printStackTrace();
}
/**根节点下所有节点(所有节点包括元素节点和其他节点)*/
List<Content> contentLis = rootEle.getContent();
int i = 0;
for(;i<contentLis.size();i++){ //遍历根节点下所有节点,直到指定节点
size++;
if(contentLis.get(i).equals(lastNode)) //判断是否遍历到匹配的节点
break;
}
return size;
}Xpath获取节点就不多说了,可以通过id或name属性取到唯一节点
存的话就是 Element root.addContent(int index,Content newContent); 方法。
主要是结合从xml拿到注释的节点然后集成到另一个xml,还涉及到节点插入的时候是有顺序的,不能乱,比如web.xml。
最近小结:今天因为要用一些东西看原来的程序,打开的时候乱码了,先跑一下吧,马马虎虎把参数写上了,跑了一下生成的东西也有乱码,跟着程序走一下吧,看哪里乱码了改下,
一行一行的看,当时师傅也在,着急啊,也找不到,以前经常说加注释,现在也有时候忘了,回头看的时候真是费时间啊,耽误事,所以注释一定要写明白,有一句话我记忆特别深刻
“在写程序的时候是逻辑最清晰的时候”,所以那时候加上注释下次看的时候也不会耽误时间了。
还有就是逻辑要清晰比如if else可能为了省点代码,也考虑到了所有情况但是别人看的时候,或自己下次自己返回来看的时候可能就得看一段时间,有时候代码多两行没事。
还有就是要多读和学会读控制台报错,遇到了硬着头皮读,不懂查,总结积累,自己慢慢的也就会了,开始也看,就是大概看一看看不懂就不看了,也没总结,每次遇到都要查,要
多积累。
用Xpath取到该节点,获取到该节点后,再与根节点下所有的节点循环比较,记录比较次数得到节点的索引也就是节点的位置
在调用一个方法Element.addContent(int index,Content newContent); 指定位置插入节点,不过取到的节点位置最好输出一下,
以免插入错误的时候不知道。
public static int getInsertIndex(Element rootEle,String contentName){
/**从root根节点第一个节点到指定节点的节点数(包括所有节点包括元素节点和其他节点,下同)*/
int size = 0;
/**节点绝对路径*/
String selectStr = "/web-app/"+contentName+"[last()]"; //也可以是其他的字符串,可通过id或name属性取到指定节点
/**查找到的指定节点*/
Content lastNode = null;
try {
lastNode = (Content)XPath.selectSingleNode(rootEle,selectStr); //获取与该节点名字(参数 contentName)相同的最后一个节点
} catch (JDOMException e) {
e.printStackTrace();
}
/**根节点下所有节点(所有节点包括元素节点和其他节点)*/
List<Content> contentLis = rootEle.getContent();
int i = 0;
for(;i<contentLis.size();i++){ //遍历根节点下所有节点,直到指定节点
size++;
if(contentLis.get(i).equals(lastNode)) //判断是否遍历到匹配的节点
break;
}
return size;
}Xpath获取节点就不多说了,可以通过id或name属性取到唯一节点
存的话就是 Element root.addContent(int index,Content newContent); 方法。
主要是结合从xml拿到注释的节点然后集成到另一个xml,还涉及到节点插入的时候是有顺序的,不能乱,比如web.xml。
最近小结:今天因为要用一些东西看原来的程序,打开的时候乱码了,先跑一下吧,马马虎虎把参数写上了,跑了一下生成的东西也有乱码,跟着程序走一下吧,看哪里乱码了改下,
一行一行的看,当时师傅也在,着急啊,也找不到,以前经常说加注释,现在也有时候忘了,回头看的时候真是费时间啊,耽误事,所以注释一定要写明白,有一句话我记忆特别深刻
“在写程序的时候是逻辑最清晰的时候”,所以那时候加上注释下次看的时候也不会耽误时间了。
还有就是逻辑要清晰比如if else可能为了省点代码,也考虑到了所有情况但是别人看的时候,或自己下次自己返回来看的时候可能就得看一段时间,有时候代码多两行没事。
还有就是要多读和学会读控制台报错,遇到了硬着头皮读,不懂查,总结积累,自己慢慢的也就会了,开始也看,就是大概看一看看不懂就不看了,也没总结,每次遇到都要查,要
多积累。
相关文章推荐
- 遍历XML,在指定位置插入节点
- 使用dom4j向xml任意指定位置插入节点
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- 使用jQuery创建节点、将节点插入到指定的位置
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- 使用jQuery创建节点、将节点插入到指定的位置
- 在XML文件中的非根节点下插入新节点时,出现“未指定错误”的处理
- 改进后的Mylist(双链表)--添加了在指定位置后插入,析构里删除节点MyNode
- 使用jQuery创建节点、将节点插入到指定的位置
- 将目标元素插入指定位置,删除子节点,替换子节点、应用之城市联动框
- dom4j插入节点到指定位置
- dom4j 插入节点到指定位置
- 单向链表(三) 在指定位置插入新的节点
- 把一个数组中的元素插入到另一个数组的指定位置
- 在word里指定书签的位置插入图片
- 在数组中指定的位置插入一个数.
- java2Word在Word文档指定位置插入图片或者文字
- 双链表排序--可以在任意位置正确插入节点
- php数组指定位置插入值
- Python:字符串中指定位置插入一个字符