【问题标题】:parsing a non xml file in java在java中解析非xml文件
【发布时间】: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中解析它?

【问题讨论】:

    标签: java xml xhtml parsing


    【解决方案1】:

    您的示例是有效的 XML,除了缺少文档元素。如果您知道情况总是如此,那么您可以在整个事物周围包装一组虚拟标签并使用标准解析器(SAX、DOM ...)

    另一方面,如果你得到一些更丑陋的东西(例如标签不匹配,或者以重叠的方式间隔开),你将不得不做一些自定义的事情,这将涉及到一些你必须遵守的规则决定这将是您的应用程序所独有的。 (例如,如何处理没有关闭的开始标签?如果结束标签在父标签之外怎么办?)

    【讨论】:

    • 我事先不知道标签的嵌套方式和顺序。例如我可以有数据 dat2 data3 dada4 datan 。如果标签没有正确排列意味着最里面的标签在外部文本关闭之前没有关闭,我需要解析器抛出异常
    • 如果有一个文档元素,通用 XML 解析器将处理未知标签并检查标签是否平衡和正确嵌套。
    【解决方案2】:

    很少有解析器采用格式不正确的 html 并将其转换为格式正确的 xml,这里有一些 comparison with examples,其中包括最流行的,除了 HTMLParser。可能这就是你需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      相关资源
      最近更新 更多