如何通过StringTemplate匹配xml字符串
来源:互联网 发布:中国农业银行软件 编辑:程序博客网 时间:2024/06/06 05:10
在实际项目中我们经常要使用xml文件,如何通过StringTemplate工具匹配xml 文件,即通过xml模板快速获取目标xml文件,如下是一个小例子。
1.字符串模板工具类, 直接看代码StringTemplateUtil.
<span style="font-size:12px;">package com.ilucky.util.template;import org.joda.time.DateTime;import org.stringtemplate.v4.ST;/** * @author IluckySi * @date 20140718 */public class StringTemplateUtil {private ST stringTemplate; public StringTemplateUtil(String templateXml) { this.stringTemplate = new ST(templateXml,'$','$'); } public StringTemplateUtil add(String key, String value) { this.stringTemplate.add(key, value); return this; } public StringTemplateUtil addHeader(String name){ String time = new DateTime().toString("yyyy/MM/dd HH:mm:ss.SSS"); stringTemplate.add("name", name); stringTemplate.add("time", time); return this; } public String build() { return stringTemplate.render(); }}</span>2.获取xml文件的工具类,直接看代码XmlReadUtil。
<span style="font-size:12px;">package com.ilucky.util.template;import java.io.IOException;import java.io.InputStream;import org.apache.commons.io.IOUtils;/** * @author IluckySi * @date 20140718 */public class XmlReadUtil {public String readXml(String path) { String result = null; InputStream is = null; try { is = this.getClass().getResourceAsStream(path); result = IOUtils.toString(is, "UTF-8"); } catch (IOException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } return result;}}</span>3.xml模板文件,直接看代码test.xml.
<span style="font-size:12px;"><?xml version="1.0" encoding="UTF-8"?><root><head><name>$name$</name><time>$time$</time></head><body><ip>$ip$</ip><mac>$mac$</mac></body></root></span>4.最后看测试类,直接看代码MainTest。
<span style="font-size:12px;">package com.ilucky.util.template;import org.apache.commons.lang3.StringUtils;/** * @author IluckySi * @date 20140718 */public class MainTest {public static void main(String[] args) {//获取xml文件中的内容,并将其内容编码为UTF-8.String path = "/com/ilucky/util/template/test.xml";String templateXml = new XmlReadUtil().readXml(path);//通过StringTemplateUtil工具获取目标xml.StringTemplateUtil util = new StringTemplateUtil(templateXml);util.addHeader("IluckySi");util.add("ip", "127.0.0.1");util.add("mac", "11-22-33-44-55-66");String result = util.build();System.out.println("经过字符串模板转换后的xml字符串为: \r\n" + result);//快速获取xml指定位置内容.System.out.println(StringUtils.substringBetween(result, "<name>", "</name>"));System.out.println(StringUtils.substringBetween(result, "<time>", "</time>"));System.out.println(StringUtils.substringBetween(result, "<ip>", "</ip>"));System.out.println(StringUtils.substringBetween(result, "<mac>", "</mac>"));}}/**输出结果:经过字符串模板转换后的xml字符串为: <?xml version="1.0" encoding="UTF-8"?><root><head><name>IluckySi</name><time>2014/07/18 20:51:34.597</time></head><body><ip>127.0.0.1</ip><mac>11-22-33-44-55-66</mac></body></root>IluckySi2014/07/18 20:51:34.597127.0.0.111-22-33-44-55-66*/</span>
0 0
- 如何通过StringTemplate匹配xml字符串
- 如何通过匹配||切分字符串
- 如何通过MessageForm类匹配字符串
- 通过dom4j解析xml字符串
- 通过dom4j解析xml字符串
- 通过dom4j解析xml字符串
- 如何迅速匹配兄弟字符串
- [已解决]:通过sql for xml查询到的xml字符串,如何存为标准格式的xml文件?
- java通过模式匹配,获取匹配到的字符串
- 单片机通过如何发送字符串?
- 173 如何迅速匹配兄弟字符串
- XML如何序列化成字符串
- Android 如何解析Xml字符串
- 如何格式化字符串的xml?
- Android 如何解析Xml字符串
- 通过一个 ID获得XML中的其他匹配项
- 解一道通过预处理来匹配字符串的题目
- shell脚本里面通过正则匹配操作字符串的问题
- 使用ListView应该注意的地方
- 如何解决谷歌浏览器中的边框线问题
- EmguCV_Capture
- 呃 0-1背包问题~~~
- 矩阵运算及 快速幂求矩阵
- 如何通过StringTemplate匹配xml字符串
- [转载]Sublime Text 搭建 LaTeX 编写环境
- UVA10025
- 二元树中和为某一值的所有路径
- PHP集成环境安装
- UVA10564- Paths through the Hourglass
- 文本分类之情感分析 – 朴素贝叶斯分类器
- 【solr基础教程之二】索引
- HigChart折现图