Java에서 이러한 종류의 HTML을 구문 분석 할 방법을 찾고있다.Java - 이런 종류의 HTML을 구문 분석하는 방법을 모른다.
<tr class="cBackHeader backCat" ...>
<th class="padding" ...>
...
<a href="{{URL CATEGORY}}" class="cHeader">{{TITLE CATEGORY}}</a>
</th>
</tr>
(<tr class="sujet..." ...>
...
<td ... class="subjectCase3" ...>
<a href="{{URL TOPIC}}" class="cCatTopic" title="{{ID TOPIC}}">{{TITLE TOPIC}}</a>
</td>
...
</tr>)+
나는 {{}} 사이의 각 변수를 적절하게 배열하고 싶습니다. 나는이 패턴 첫 번째 부분 얻기 위해 관리했습니다 :
<th class=\"padding\".*?>.*?<a href=\"(.+?)\" class=\"cHeader\">(.+?)</a></th>
을하지만 두 번째 부분으로 수행하는 방법을 모른다 (그들은 많은 td.subjectCase3 될 수있다).
편집 : 여기 Jsoup를 사용한 내 솔루션이 있지만이 패턴 및 매처보다 최적화가 적습니다.
Document document = Jsoup.parse(response);
Element tmp;
Elements elements = document.select("tr.cBackHeader,tr.sujet");
for (Element el : elements) {
if (el.hasClass("cBackHeader")) {
tmp = el.select("a.cHeader").first();
result.add(new TopicItem(null, tmp.ownText()));
} else if (el.hasClass("sujet")) {
tmp = el.select("td.sujetCase3 a").first();
result.add(new TopicItem(new Topic(tmp.attr("title"), tmp.attr("href"), tmp.ownText()), null));
}
}
어떻게 생각하십니까?
DOM 구문 분석기 종속성 가져 오기 그걸 써. 정규식이 아닙니다. HTML을 파싱하는 Regexes는 실수 방지가되어 있지 않습니다. 특히 일치하는 파일이이 HTML과 비슷할 경우 특히주의를 기울일 것입니다. – Unihedron
Jsoup와 같은 DOM 파서? – BkSouX
예, Jsoup는 신뢰할 수있는 파서 중 하나입니다. 그걸 써. – Unihedron