2015-06-06 3 views
-3

Я использую stax для анализа XML-контактирующих HTML и пользовательских тегов в java.Лучший способ для синтаксического анализа XML в java

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> 

Я только требую деталей ресурса (то есть атрибуты) Есть ли другой лучший вариант доступен с точкой зрения скорости парсинга.

+0

Использовать Jsoup (библиотека), которая работает как парсер HTML/XML – RafaelC

ответ

0

Этот вопрос чрезмерно широк, поэтому мне пришлось его понижать. Я не знаю, каковы обстоятельства вашей интерпретации XML, поэтому этот ответ будет ограничен.

Однако, я могу вам сказать, что были использованы классические SAX and JAXP; они строго не требуют DTD, и с некоторыми умными перечислениями вы можете разбирать что угодно.

JSoup, как упоминалось Рафаэлем Кардосо, обычно является парсером HTML, а не парсером HTML-in-XML; но это может сработать для вас. Если все, что вы ищете, являются атрибутами определенного тега вместе с (предположительно) связанными данными, тогда JDK может иметь все, что вам нужно.

У нас также есть JDOM, DOM4J и множество других, все из которых имеют свои сильные и слабые стороны. Этот вопрос, таким образом, не является особенно конструктивным и является в основном дубликатом this one; на что вы можете взглянуть.

Я рекомендую посмотреть на this tutorial; в котором объясняется, как создать парсер со стандартной библиотекой.

В будущем, если возможно, укажите условия, в которых работает ваша программа, предоставьте нам объективный и четко заданный вопрос и сначала изучите Stack Overflow. Тем не менее, я надеюсь, что это сделает это за вас. Удачи!