【发布时间】:2009-08-29 05:29:55
【问题描述】:
我想解析一个不是纯 xml 的文档。例如
my name is <j> <b> mike</b> </j>
示例 2
my name is <mytag1 attribute="val" >mike</mytag1> and yours is <mytag2> john</mytag2>
意味着我的输入不是纯 xml。它类似于 html,但标签不是 html。 我如何在java中解析它?
【问题讨论】:
我想解析一个不是纯 xml 的文档。例如
my name is <j> <b> mike</b> </j>
示例 2
my name is <mytag1 attribute="val" >mike</mytag1> and yours is <mytag2> john</mytag2>
意味着我的输入不是纯 xml。它类似于 html,但标签不是 html。 我如何在java中解析它?
【问题讨论】:
您的示例是有效的 XML,除了缺少文档元素。如果您知道情况总是如此,那么您可以在整个事物周围包装一组虚拟标签并使用标准解析器(SAX、DOM ...)
另一方面,如果你得到一些更丑陋的东西(例如标签不匹配,或者以重叠的方式间隔开),你将不得不做一些自定义的事情,这将涉及到一些你必须遵守的规则决定这将是您的应用程序所独有的。 (例如,如何处理没有关闭的开始标签?如果结束标签在父标签之外怎么办?)
【讨论】:
很少有解析器采用格式不正确的 html 并将其转换为格式正确的 xml,这里有一些 comparison with examples,其中包括最流行的,除了 HTMLParser。可能这就是你需要的。
【讨论】: