jsoup到w3c-document:INVALID_CHARACTER_ERR

时间:2016-04-08 16:01:47

标签: java dom jsoup

我的用例:通过jsoup获取html页面并返回一个w3c-DOM,以便通过XML转换进一步处理:

...
org.jsoup.nodes.Document document = connection.get();
org.w3c.dom.Document dom = new W3CDom().fromJsoup(document);
...

适用于大多数文档,但对于某些文档,它会抛出INVALID_CHARACTER_ERR而不告诉在哪里。

找到错误似乎非常困难。我更改了代码,首先将url导入String,然后通过regexp检查错误字符。但这对于不良属性(例如没有价值)等没有帮助。

我目前的解决方案是通过在jsoup-document(head,img,script ...)中按标记删除元素来最小化风险。

有更优雅的解决方案吗?

2 个答案:

答案 0 :(得分:1)

尝试将outputSettings设置为' XML'为您的文件:

document
  .outputSettings()
  .syntax(OutputSettings.Syntax.xml);

document 
    .outputSettings()
    .charset("UTF-8");

这应确保生成的XML有效。

答案 1 :(得分:1)

OP在回复nyname00时找到的解决方案:

  

非常感谢你;这解决了这个问题:

string stringDouble = double.MaxValue.ToString("r");
double doubleValue = double.Parse(stringDouble); // No exception
     

"松弛"行动意味着轻松的开发者......