Android,SAX解析器在阅读Html标签时出现问题

时间:2011-04-08 05:04:09

标签: android android-emulator

我想用Sax Parser解析这个文本,问题是由于内容标签中的Html标签字符串缓冲区不会读取Html标签可以任何人建议我如何用Sax Parser做,或参考我使用SAX解析Html数据的任何链接

Text to parse With SAX

3 个答案:

答案 0 :(得分:2)

如果您可以修改自己提供的文字,只需使用CDATA

即可
<content><![CDATA[Your stuff here with all the <em>HTML</em> tags you can think of.]]></content>

然后SAX Parser的toString()将返回如下字符串:Your stuff here with all the <em>HTML</em> tags you can think of.

答案 1 :(得分:2)

您可以使用此方法将CDATA放入数据中(参数DATA:实际数据;标签:需要放置CDATA的XML标签名称。)

 public static final String putCDATA(String data, String tag) {
    if(data == null || data.length() <= 0 || tag == null || tag.length() <= 0) {
        return null;
    }

    String newData = "";

    while(true) {
        int firstIndex = data.indexOf("<" + tag + ">");
        firstIndex = firstIndex + new String("<" + tag + ">").length() - 1;

        int lastIndex = data.indexOf("</" + tag + ">");

        if(firstIndex == -1 || lastIndex == -1) {
            break;
        }

        String tagValue = data.substring(firstIndex + 1, lastIndex);
        tagValue = "<![CDATA[" + tagValue + "]]>";

        newData += data.substring(0,firstIndex + 1);
        newData += tagValue;
        newData += data.substring(lastIndex, lastIndex + new String("<" + tag + ">").length() + 1);

        data = data.substring(lastIndex + new String("<" + tag + ">").length() + 1, data.length());
    }

    newData += data;

    System.out.print("FORMATED: " + "\n" + newData);
    return newData;
}

答案 2 :(得分:1)

HTML文件不符合XML。