Troubleshooting

Troubleshooting

针对 Aspose.HTML FOSS for Python 中最常出现的问题的修复,按层级分组。

样式与层叠

样式表规则没有任何效果。 必须使用以下方式附加样式表 Document.attach_style_sheet() before Element.get_computed_style() 被调用。未附加的样式表永不参与层叠。

行内声明会被样式表规则覆盖。 作者规则标记为 !important 优先于非重要的行内声明。请检查 CSSStyleDeclaration.get_property_priority().

两条规则同等时,“wrong” 的那条会获胜。 相同特异性的平局通过规则顺序决定——后面的规则获胜。比较元组请使用 specificity() 有疑问时。

继承的值未能传递给子元素。 本地值始终覆盖继承值,并非所有属性都会继承。首先读取父元素的计算值,以确认应向下传递的内容。

解析与 DOM

格式错误的标记解析时不会报错。 标准行为:树的构建为每种错误情况定义恢复。如果需要检测问题,请通过以下方式检查 token 流: Tokenizer.tokenize().

表格内容出现在表格之外。 Foster parenting 会将错位的表格内容重新定位,正如浏览器的做法。请修复源代码中的嵌套结构。

get_element_by_id() 不返回任何内容。 元素必须携带 id 属性并附加到该文档的树上。

Encodings

解码后的文本中会出现字节顺序标记。 使用 detect_encoding() — 它会从 result.text. 手动解码会保留它们。

同一编码的两个标签比较时不相等。 使用以下方式对两者进行规范化 get_canonical_name(); latin1 and iso-8859-1 两者都是 windows-1252 在规范上。

Scripts

评估会抛出 ModuleNotFoundError。 脚本导入了一个不存在于 ModuleRegistry. 注册它或将错误视为你的沙箱按预期工作。

脚本失败会导致管道中断。 Catch JSEvaluationError 在评估边界处——它是脚本端失败的类型化信号。

另请参阅

 中文