我要处理如下html文件(示例)<img src="../images/a.jpg"/>
<img src="../images/b.gif"/>
<img src="../images/c.png/>
<P>这是只不过是个测试</p>
<a href="javaScript:void(0)">测试给你看的</a>
<span class="body.class.label">还是给你看的</span>
我想要将这个html文件(在一个容器中,假如这个容器叫做editor吧,获取的html文本可以表示为 String html=editor.value()),内容中的图片(只要src之内的内容)和文本(带着<html>标签)分别拿出来处理。我该怎么获得该容器中所有图片路径的集合?我知道使用正则表达式,但我只有思路而不会处理。用正则获取完图片src集合之后,剩下的文本该怎么处理?使用subString?肯定不现实,求牛人帮助。
<img src="../images/b.gif"/>
<img src="../images/c.png/>
<P>这是只不过是个测试</p>
<a href="javaScript:void(0)">测试给你看的</a>
<span class="body.class.label">还是给你看的</span>
我想要将这个html文件(在一个容器中,假如这个容器叫做editor吧,获取的html文本可以表示为 String html=editor.value()),内容中的图片(只要src之内的内容)和文本(带着<html>标签)分别拿出来处理。我该怎么获得该容器中所有图片路径的集合?我知道使用正则表达式,但我只有思路而不会处理。用正则获取完图片src集合之后,剩下的文本该怎么处理?使用subString?肯定不现实,求牛人帮助。
自己处理其实也行
不过相对来说麻烦
你说的那个我试过。它是要从某一个路径读一个xml文件,并对其进行遍历筛选操作。我这个在程序中获取的是一个String类型字符串,用那api不能对其进行筛选遍历
public String strXML;
public int nXmlState;// 0表示上行,1表示状态报告 private ByteArrayInputStream stream;
private DocumentBuilderFactory factory;
private DocumentBuilder builder;
private Document doc;
try {
stream = new ByteArrayInputStream(strXML.getBytes());
factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
doc = builder.parse(stream);某代码片断
"<img src=\"../images/a.jpg\"/>" +
"<img src=\"../images/b.gif\"/><img src=\"../images/c.png\"/>"+
"<P>这是只不过是个测试</p>"+
"<a href=\"javaScript:void(0)\">测试给你看的</a>"+
"<span class=\"body.class.label\">还是给你看的</span>"+
"</body></html>";
Parser parser = new Parser(html);
//内容中的图片(只要src之内的内容)和文本(带着<html>标签)
NodeFilter filter = new TagNameFilter ("img");
NodeList nodes = parser.extractAllNodesThatMatch(filter);
if(nodes!=null) {
for (int i = 0; i < nodes.size(); i++) {
Node textnode = (Node) nodes.elementAt(i);
System.out.println("gg:"+textnode.getText());
}
}