【问题标题】:NullPointerException with Simple HTMLserializer带有简单 HTMLserializer 的 NullPointerException
【发布时间】:2013-01-05 01:10:24
【问题描述】:


我正在尝试从 TagNode 解析 html。 问题是,有一个内部异常阻止它工作。 这是我的电话:

CleanerProperties props = new CleanerProperties();
SimpleHtmlSerializer serializer = new SimpleHtmlSerializer(props);
changes.setHtmlForTimetable(serializer.getAsString(root));

root 当然不为空,显然序列化器也不为空。

这是堆栈跟踪:

01-21 23:42:50.860: W/System.err(25196): java.lang.NullPointerException
01-21 23:42:50.865: W/System.err(25196):    at org.htmlcleaner.HtmlSerializer.isMinimizedTagSyntax(HtmlSerializer.java:54)
01-21 23:42:50.875: W/System.err(25196):    at org.htmlcleaner.HtmlSerializer.serializeOpenTag(HtmlSerializer.java:189)
01-21 23:42:50.880: W/System.err(25196):    at org.htmlcleaner.SimpleHtmlSerializer.serialize(SimpleHtmlSerializer.java:52)
01-21 23:42:50.885: W/System.err(25196):    at org.htmlcleaner.Serializer.write(Serializer.java:249)
01-21 23:42:50.890: W/System.err(25196):    at org.htmlcleaner.Serializer.getAsString(Serializer.java:176)
01-21 23:42:50.900: W/System.err(25196):    at org.htmlcleaner.Serializer.getAsString(Serializer.java:197)
01-21 23:42:50.905: W/System.err(25196):    at org.htmlcleaner.Serializer.getAsString(Serializer.java:206)
01-21 23:42:50.915: W/System.err(25196):    at com.roneven.blich.GetChanges$1$1$1.callback(GetChanges.java:125)
01-21 23:42:50.920: W/System.err(25196):    at com.roneven.blich.GetChanges$1$1$1.callback(GetChanges.java:1)
01-21 23:42:50.930: W/System.err(25196):    at com.androidquery.callback.AbstractAjaxCallback.callback(AbstractAjaxCallback.java:501)
01-21 23:42:50.935: W/System.err(25196):    at com.androidquery.callback.AbstractAjaxCallback.afterWork(AbstractAjaxCallback.java:1269)
01-21 23:42:50.940: W/System.err(25196):    at com.androidquery.callback.AbstractAjaxCallback.run(AbstractAjaxCallback.java:993)
01-21 23:42:50.945: W/System.err(25196):    at android.os.Handler.handleCallback(Handler.java:725)
01-21 23:42:50.945: W/System.err(25196):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-21 23:42:50.950: W/System.err(25196):    at android.os.Looper.loop(Looper.java:137)
01-21 23:42:50.950: W/System.err(25196):    at android.app.ActivityThread.main(ActivityThread.java:5191)
01-21 23:42:50.955: W/System.err(25196):    at java.lang.reflect.Method.invokeNative(Native Method)
01-21 23:42:50.955: W/System.err(25196):    at java.lang.reflect.Method.invoke(Method.java:511)
01-21 23:42:50.960: W/System.err(25196):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-21 23:42:50.960: W/System.err(25196):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-21 23:42:50.965: W/System.err(25196):    at dalvik.system.NativeStart.main(Native Method)

更新: 我找到了一种解决方法,甚至没有使用 HtmlSerializer 或 TagNode(使用我已经成功提取的 html 和一些字符串命令)

【问题讨论】:

  • 它是一个TagNode 对象。它不为空
  • changes 也不为空。您可以在堆栈跟踪中看到异常在HtmlSerializer 内引发。所以这可能不是问题。也许不知何故它是一个静态方法?
  • 我看到更改后并编辑后不为空。我在想也许 root 包含一些空值。也许发布更多代码会有所帮助,以及您如何调用您的方法。
  • 谢谢,但我找到了一个解决方法,甚至没有使用 HtmlSerializer 或 TagNode(使用我已经成功提取的 html 和一些字符串命令)

标签: java android html html-parsing htmlcleaner


【解决方案1】:

根据来自HtmlCleaner 的消息来源,HtmlSerializer.isMinimizedTagSyntax() 调用了CleanerProperties.getTagInfoProvider()。在CleanerProperties.java

ITagInfoProvider tagInfoProvider = null;
...
public ITagInfoProvider getTagInfoProvider() {
    return tagInfoProvider;
}

CleanerProperties 中没有设置它的方法。 tagInfoProvider 必须以某种方式设置,然后才能使用它。

我认为,要了解如何操作,您必须深入研究 HtmlCleaner 的文档,例如 Java code usage

【讨论】:

  • 谢谢,但我找到了解决方法,甚至没有使用 HtmlSerializer 或 TagNode(使用我已经成功提取的 html 和一些字符串命令)
【解决方案2】:

我也遇到了同样的问题,花了很多时间寻找解决方案。

CleanerProperties props = new CleanerProperties() {

    @Override
    public ITagInfoProvider getTagInfoProvider() {
        return DefaultTagProvider.getInstance();
    }

};

HtmlSerializer simpleHtmlSerializer = new SimpleHtmlSerializer(props);
String message = simpleHtmlSerializer.getAsString(tagNode, true);

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2021-04-17
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多