在Java中进行XML解析的最佳方法

时间:2015-06-06 15:25:26

标签: java xml-parsing jackson

我正在使用stax来解析在java中包含HTML和自定义标记的XML。

XML看起来像这样

<html><div>Hello World</div><div><br /></div>
<div><br />
<Resource type="audio/m4a" height="72.00" id="lh6rde3c1d39148804cea99b054f4cc4bb990" width="72.00" />
<br /><br /></div>
<div><br />
</div><div>asfasdfasdfasdf</div><div><br /></div><div><br /></div><div><b>asdfasdfasdfasdf</b></div>
<div>
<b>adsfasdfasdf</b>
</div><div><b><br /></b></div><div><b><i>sdfasdfasdfas</i></b></div><div><i><b>asdfasdfasdfasdf</b>asdfasdfasdfasdf</i>
</div>
<Resource type="video/mp4" height="72.00" id="lh6rde3c1d39148804cesdfd2454f4cc4bb990" width="72.00" />
<div><i>asdfasdfasdfasdfasdf</i></div>
<div><ol><li><i>one</i></li><li><i>wto</i></li><li><i>three</i></li></ol><div>
<i>
asdfasdfasdfasdf</i>
</div><div>
<ul><li><i>one </i></li><li><i>thwo</i></li><li><i>three</i></li></ul></div>
</div></html>

我只需要资源详细信息(即属性) 在解析速度方面还有其他更好的选择吗?

1 个答案:

答案 0 :(得分:0)

这个问题过于宽泛,所以我不得不将其投票。我不知道你的XML解释的情况是什么,所以这个答案是有限的。

但是,我可以告诉你,经典SAX and JAXP已被使用;他们并不严格要求DTD,并且通过一些聪明的枚举,你可以解析任何事情。

正如Rafael Cardoso所提到的,

JSoup通常是HTML解析器,而不是HTML-in-XML解析器;但它可能对你有用。如果您要查找的只是特定标记的属性,以及(可能)相关数据,那么JDK可能拥有您需要的所有内容。

我们还有JDOM,DOM4J和其他一些,所有这些都有自己的优点和缺点。因此,这个问题不具有特别的建设性,基本上是this one的副本;您可以查看一下。

我建议查看this tutorial;这解释了如何使用标准库构建解析器。

将来,如果可能的话,请指定您的程序运行的条件,向我们提供客观和明确定义的问题,并首先更彻底地研究Stack Overflow。同样,我希望这能为你做到。祝你好运!