java中XPATH操作xml,非常便捷

<?xml version="1.0" encoding="UTF-8"?>
<MessageList>
 <item type="1">
  <template_id value="p2ItJPj0taTTP4QRXP-z51nYuD3aDNhgvLOusWGY4p0"/>
  <topcolor value="#173177"/>
  <first value="您好,您的信用卡收到1000元汇款。"  color="#173177"/>
  <productType value="帐号类型:信用卡\n尾号:1758 4545" color="#173177"/>
  <time value="2013年9月30日 17:58" color="#173177"/>
  <type value="收款" color="#173177"/>
  <number value="1000元" color="#173177"/>
  <remark value="备注:如有疑问,请拨打咨询热线123323。" color="#173177"/>
 </item>
 <item type="2">
  <template_id value="p2ItJPj0taTTP4QRXP-z51nYuD3aDNhgvLOusWGY4p0"/>
  <topcolor value="#173177"/>
  <first value="您好,测试type=2的微信推送。"  color="#173177"/>
  <productType value="帐号类型:信用卡\n尾号:1758 4545" color="#173177"/>
  <time value="2013年9月30日 17:58" color="#173177"/>
  <type value="收款" color="#173177"/>
  <number value="1000元" color="#173177"/>
  <remark value="备注:如有疑问,请拨打咨询热线123323。" color="#173177"/>
 </item>
</MessageList>
/**
  * @throws DocumentException
  * @Title: getBuySuccessTemplate
  * @Date: 2015-3-23
  * @Autor: gavin
  * @Description: TODO(推送到微信端购买成功信息)
  * @param @param template_id 设定文件
  * @return void 返回类型
  * @throws
  */
 private String getTemplateJson(int type) {
  try {
  StringBuffer templateJson = new StringBuffer();
  String path = this.getClass().getResource("/").getPath();
  String xmlPath = path + File.separator + "config" + File.separator+ "spring" + File.separator + "send-message.xml";
  LogUtils.writeLog(xmlPath);
  File xmlFile = new File(xmlPath);
  SAXReader reader = new SAXReader();
  Document doc = reader.read(xmlFile);
  Element childs = (Element) doc.selectSingleNode("//MessageList//item[@type=‘" + type + "‘]");
  Element template_idEle = (Element) doc.selectSingleNode("//MessageList//item[@type=‘" + type+ "‘]//template_id");
  Element topcolorEle = (Element) doc.selectSingleNode("//MessageList//item[@type=‘" + type+ "‘]//topcolor");
  List<Element> childList = childs.elements();
  templateJson.append(getTemplateCommon(template_idEle.attributeValue("value"),topcolorEle.attributeValue("value")));
  for (Element child : childList) {
   if (!child.getName().equals("template_id") && !child.getName().equals("topcolor")) {
    templateJson.append("\"" + child.getName() + "\":{\"value\":\""+ child.attributeValue("value") + "\",\"color\":\""+ child.attributeValue("color") + "\"},");
   }
  }
  templateJson.append("}}");
  return templateJson.toString().replace(",}}", "}}");
  } catch (DocumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   return null;
  }
 }

 
时间: 2024-11-07 19:28:18

java中XPATH操作xml,非常便捷的相关文章

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

xpath 操作XML

1.xpath 操作XML,底下部分代码被注释了,但是是完整功能,去除注释是正常使用的(有写命名和其他冲突,所以注释了) 总体有:完整读取xml,对xml的增删改查,对xml的特定操作 using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Xml;using System.Xml.Linq; namespace XPath

在C#.net中如何操作XML

在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlElement xmlelem ; 1,创建到服务器同名目录下的xml文件: 方法一: xmldoc = new XmlDocument ( ) ; //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?> XmlD

java中dom解析xml

从xml文件中得到某个节点中value的值,条件是已知道某一个子节点的参数,如下一片段, 已知 <name> 为 “Motor hand”的值,想从整个xml文件中得到此子节点的<value>所对应的值. “<field><name>Motor hand</name><value>Right</value><type>Dotted</type></field>” 此方法是dom 遍历,获

Java使用XPath查询XML中的元素

使用java中的xpath语法查询xml中元素 1.查询的xml文件为student.xml文件 <?xml version="1.0" encoding="UTF-8" ?><students> <student class="1201">  <name>李小离</name>  <sex>男</sex>  <age>25</age> &l

java中文件操作《一》

在日常的开发中我们经常会碰到对文件的操作,在java中对文件的操作都在java.io包下,这个包下的类有File.inputStream.outputStream.FileInputStream.FileOutputStream.reader.writer.FileReader.FileWriter等等,其中对文件的操作又分为两大类,一类是字符流,一类是字节流.所谓的字符流是以字节(8b)为单位进行读/写,字符流即使用字符为单位读/写,java使用unicode编码,一个字符两个字节,下面分别对

Java中数组操作 java.util.Arrays 类常用方法的使用

任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的.下面介绍一下Arrays类最常用的几个方法. 1.  数组排序 Arrays工具类提供了一个sort方法,只需要一行代码即可完成排序功能. 2.  数组转换为字符串 Arrays提供了一个toString方法,可以直接把一个数组转换为字符串,这样可以方便观察数组里的元素. //来源:公众号[时光与

[Java] 通过XPath获取XML中某个节点的属性

public String getPAUrl(){ String PAUrl = ""; try { String filePath = System.getProperty ("user.dir").toString()+"/src/test/resources/config/environment.xml"; logger.info("The path of environment.xml is : "+filePath)

java使用dom4j操作XML增删改查-超简洁

一.前言 1.使用工具:eclipse    环境:JDK-11 2.类说明:共四个类:Zen   |  Shan  |   Gai   |   Cha   (一个类只做一件事,简单明了) 3.引用jar包:dom4j-1.6.1.jar 4.反馈方式:邮箱 [email protected] 5.使用的源XML名为:Humen.xml  内容如下 二.源码 1.在源XML基础上添加新的 节点.属性.文本内容 /** * 作者:向家康 * 版权所有 禁止转发 */package 正式版.XML.