使用java的HTML解析器的简单CSS属性

时间:2012-12-14 17:47:29

标签: java html css regex parsing

我试图解析简单<font>标记的style属性,并将其转换回简单的html属性。例如,我有这个字符串<font style="font-family:tahoma;font-size:24px;color:#9900CC;">,我想以某种方式将它转换为<font size="24" color="#9900CC" face="tahoma">我知道这可以用正则表达式完成,但我不知道怎么做?

感谢

1 个答案:

答案 0 :(得分:0)

所以这是迄今为止我所做的最简单的解决方案,它是一个肮脏的解决方案,但它就像一个魅力:

static public String convertCSSFonttoHTML(String css)
{

    List<List<String>> allFontTags = regexFindMultiStrings("<font[^>]*(style=['\"][^'\"]+['\"])[^>]*>", css);
    String allAttributes = "";

    for(int y=0; y<allFontTags.size(); y++)
    {
        String style = allFontTags.get(y).get(0);
        String size = regexFindString("font-size:([^0-9]+)", style);
        String color = regexFindString("color:([^;]+);", style);
        String face = regexFindString("font-family:([^;]+)", style);

        if(!size.isEmpty())
             allAttributes += "size=\""+size+"\" ";

        if(!color.isEmpty())
             allAttributes += "color=\"" + color + "\" ";

        if(!size.isEmpty())
             allAttributes += "face=\""+face+"\"";



        //do replacements to the first occurance
        css = css.replaceFirst(style, allAttributes);

        //empty atts
        allAttributes = "";
    }

    //Log.e("Regex", css);


    return css;

}