我要处理如下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?肯定不现实,求牛人帮助。

解决方案 »

  1.   

    找找htmlparser的相关资料吧
    自己处理其实也行
    不过相对来说麻烦
      

  2.   

    java api有一个类是处理xml的,具体我忘记了,你搜索下
      

  3.   

    就是用java语言把一个String类型的字符串中的所有<img>标签src属性的内容全部筛选出来,然后再把<img>标签以外的内容全部筛选出来。我做的头疼
      

  4.   


    你说的那个我试过。它是要从某一个路径读一个xml文件,并对其进行遍历筛选操作。我这个在程序中获取的是一个String类型字符串,用那api不能对其进行筛选遍历
      

  5.   

    它可以处理字符串的
    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);某代码片断
      

  6.   

    我从上午开始看你推荐的htmlParser,还是没明白怎么用
      

  7.   

    final String html ="<html><head></head><body>"+ 
    "<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()); 
                } 
            }