1

I'm writing a parser in Haskell for the site using the packages Text.XML and Text.XML.Cursor.

There are unclosed tags and get an error:

Main.hs: Error parsing XML file dat.html: 29:1-29:8: Expected end element for: Name {nameLocalName = "br", nameNamespace = Nothing, namePrefix = Nothing}, but received: EventEndElement (Name {nameLocalName = "body", nameNamespace = Nothing, namePrefix = Nothing})

What to do? How to ignore such tags?

4

1 回答 1

1

带有未闭合标签的文本对象格式不正确因此不是 XML。

因此,忘记使用任何 XML 库、解析器或工具。根据定义和设计,它们无法为您提供帮助。

你有两个选择。任何一个,

  1. 通过关闭未闭合的标签来修复文本对象的格式。您可以手动执行此操作或尝试使用TIDY,或者
  2. 定义一种允许未封闭标签的新数据格式,并为它从头开始编写解析器。
于 2016-01-03T14:33:09.657 回答