最近在做一个新闻发布系统,后台用的的编辑器是FCKeditor, 一个开源的编辑器。
具体使用啊,配置啊,网上很多教程,可是编辑器里上传的图片的路径死活获取不到。网上有人介绍大概有两种方式就是通过正则表达式来析取,另外一种是用FCKeditor里的JS。试了两种方式,JS没能实现,正则表达式却只能提取一张图片的路径,上传了多张图片就会出错,而我正则表达式有不大懂,只有另辟蹊径。
从编辑器里传过了的是html格式的代码,那么就可以编程来解析DOM了,这样就可以得到img,tr,td等标签的集合,然后就能找到图片路径了吗,想到一个以前用的一个现成的工具htmlparser, htmlparser就是用来解析html的java工具,简单到你只需要去指定规则,然后得到你想要的节点,具体可以去查些教程看看。这里从editor传过来的content,然后解析content,得到img标签集,然后找到图片路径,代码如下:
public String getImageURL(String txt) throws ParserException{
String img=null;
Parser parser;
NodeFilter filter=new TagNameFilter("img");
parser = Parser.createParser(txt,"GB2312");
NodeList nodelist=parser.parse(filter);
if(nodelist.size()!=0){
Node[] nodes=nodelist.toNodeArray();
for(int i=0;i<nodes.length;i++){
ImageTag image=(ImageTag) nodes[i];
if("".equals(img)){
img=image.getImageURL().toString();
}else{
img=img+","+image.getImageURL().toString();
}
}
}
return img;
}