加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过正则表达取出xml属性中的字符串,并转换为图片

发布时间:2020-12-14 02:26:55 所属栏目:百科 来源:网络整理
导读:import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.rege

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import sun.misc.BASE64Decoder;

/**
* 从xml中的属性中取出图片
*
* @author艾客
*
* jdom、dom4j从xml中的节点的属性中获取base64转换的后的字符串有问题(备注:如果这个特殊的字符串在节点下【eg:<t>经过base64编码的图片字符串</t>】,获取节点的text值在转图片,则正常)
*/
public class ConvertImage {

public static void main(String[] args) throws Exception,IOException {
String string = inputStream2String(new FileInputStream("d:a.xml"));

// Pattern p = Pattern.compile("PK_EventId="(.*?)"");
//Pattern p = Pattern.compile("PRINTENTITY="([^.]*)"");//匹配非换行符
Pattern p = Pattern.compile("PRINTENTITY="([sS]*)"");//sS 匹配任何空白字符+匹配任何非空白字符
//Pattern p = Pattern.compile("PRINTENTITY=["']([sS]*)["']");
Matcher m = p.matcher(string);

String img = "";
System.out.println("===========================");
while (m.find()) {
img = m.group(1);
System.out.println(img);
}
System.out.println("===========================");

BASE64Decoder decoder = new BASE64Decoder();
byte[] data = decoder.decodeBuffer(img);
FileOutputStream os = new FileOutputStream("D:01.jpg");
os.write(data);
os.flush();
os.close();

}

public static String inputStream2String(InputStream inStream) throws IOException {
String lineSeparator = System.getProperty("line.separator");

StringBuffer sb = new StringBuffer();
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(inStream,"UTF-8"));
String str = null;
while ((str = bufferReader.readLine()) != null) {
sb.append(str + lineSeparator);
}
if (null == sb || sb.length() == 0) {
return null;
}

return sb.toString(); } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读