我正在寻找一个用编写的解析器,它可以解析一个用SGML格式化的文档。
对于重复监视器:我知道有另外两个讨论此主题的帖子:Parsing Java String with SGML Java SGML to XML conversion?,但这两个帖子都没有解决方案,因此出现了新的主题。
对于那些混淆XML和SGML的人:请阅读这个:http://www.w3.org/TR/NOTE-sgml-xml-971215#null (简而言之,有足够的细微差别至少使它在普通形式中不可用)
对于那些喜欢让发帖者搜索它的人来说:我已经搜索过了,我能想到的最接近的是广受欢迎的SAXParser:http://download.oracle.com/javase/1.4.2/docs/api/javax/xml/parsers/SAXParser.html,但它当然是一个XML解析器。我四处看看是否有人实现了SAX解析器的修改以适应SGML。
最后,我不能使用SX,因为我正在寻找Java解决方案。
谢谢!:)
发布于 2011-03-07 21:53:52
我有几种方法来解决这个问题
第一个是您所做的--检查sgml文档是否足够接近XML,以便标准SAX解析器工作。
第二种方法是对HTML解析器执行相同的操作。这里的诀窍是找到一个不会忽略非HTML元素的元素。
在搜索"sgml解析器Java“时,我确实找到了一些Java SGML解析器,更详细。我不知道它们的效果如何。
最后一步是使用标准(非Java) SGML解析器,并将文档转换为您可以用Java阅读的内容。
看起来你已经可以开始第一步了。
发布于 2013-02-18 19:24:15
我通过JNI使用OpenSP,因为似乎没有纯Java SGML解析器。我已经编写了一个类似于SAX的实验性包装器,可以在http://sourceforge.net/projects/sasgml上获得(当然,它具有JNI...但足以满足我的需求)。
另一种方法是使用Open SP中的sx将文档转换为XML,然后运行传统的SAX解析器。
https://stackoverflow.com/questions/4867894
复制相似问题