2011-02-16 3 views
2

나는 플레이어 이름과 그가 득점 한 실행을 검색하기 위해 구문 분석해야하는 다음 HTML 코드를 가지고 있습니다. 이 경우 'Ross Taylor'및 9입니다. 이 정보를 구문 분석하는 가장 좋은 방법은 무엇입니까? HTML 파서를 사용하고 싶지는 않습니다. REGEX가 가장 좋은 방법입니다 (나는 사람들이 이것에 대해 죽었다는 것을 알고 있습니다!하지만이 2 비트의 정보를 원하므로 파서를 사용하고 싶지 않습니다). 저는 플레이어 이름이 html 파일에있는 곳과 결과가 나오는 행에 점수를 매기는 방법을 알아야합니다. 아래의 HTML 주석 부분은 하드 코딩 된 부분입니다. 나는이 장소에 다다를 수있다. 그런 다음 태그 사이의 이름을 검색하십시오. 이것이 좋은 방법일까요? 다음 행의 실행 부분을 어떻게 검색합니까?Android : 코드의 HTML 블록을 구문 분석


<!-- <a href="javascript:void(0);" onClick="return showHwkTooltip(this, 'lvpyrbat1');" class="livePlayerCurrent">*Luke Woodcock</a>--> 

<a href="/icc_cricket_worldcup2011/content/current/player/38920.html" target="_blank" class="livePlayerCurrent" title="view the player profile for Ross Taylor"> 
*Ross Taylor 
</a> <span style="margin-left:5px;" title="left-hand bat">(lhb)</span > 

    </td > 
    <td><b>9</b></td> 
    <td>9</td> 
    <td>1</td> 
    <td>0</td> 
    <td>100.00</td> 
    <td></td> 
    <td colspan="3" align="left"><span class="batStyl">striker</style></td> 
    <td></td> 
    <td colspan="8"></td> 
    </tr> 

당신이 더 많은 정보가 필요하면 알려 주시기 바랍니다.

감사합니다, 샘

+0

읽어 보시기 바랍니다 메시지 서식 규칙을, 나는 내가 그것을 사용하고있는 유일한 이유가 될 수있다 생각합니다. – BalusC

+1

파서를 사용하십시오. 2 개의 정보에 대해서조차. HTML을 파싱하기 위해 정규식 토끼에 빠지지 마십시오. – CanSpice

+0

@CanSpice 또한 HTML/XML 구문 분석기를 제안 해 주시겠습니까? 위 예제에서 REGEX를 사용하는 것과 어떻게 다릅니 까? – sammydude

답변

9

이 정보를 구문 분석하는 가장 좋은 방법은 무엇입니까? Use an HTML parser.

는 HTML 파서를 사용하지 마십시오.

I disagree.

이 가치가 무엇을 위해 가장 좋은 방법

No.

+0

HTML/XML 파서를 제안 해 주시겠습니까? 위 예제에서 REGEX를 사용하는 것과 어떻게 다릅니 까? – sammydude

+0

@sammydude : http://java-source.net/open-source/html-parsers는 'java html parser'에 대한 Google 검색의 세 번째 링크입니다. – CommonsWare

+0

CommonsWare에서 제공하는 답변에 동의하십시오. 아주 작은 요구 사항이 있었기 때문에 REGEX를 계속 사용했습니다. – sammydude

1

예를 들어, 작업에 적합한 도구를 사용하는 것을 고려하십시오하는 html/xml parser하지 regex.

당신이 정말 당신이 시도 할 수 정규식을 사용하고 싶은 경우 밖으로 다음

추출 점수 ​​

(?<=\\<b\\>)\\d+(?=\\</b\\>) 

두 번째 정규식을 가정

(?<=\\>)[^\\<]+(?=\\</a\\>) 

추출 플레이어 이름 주석 태그 사이의 앵커 태그를 제거하여 xml을 삭제합니다.

<!-- ... --> 

어떤 앵 꼬자 내에서 값을 추출합니까? 이것은 정규 표현식을 사용할 때의 근본적인 제한 중 하나입니다. 정규 표현식은 상황을 인식하지 못합니다.

+0

@ johan-sjoberg 답변 해 주셔서 감사합니다. 방금 HTML 파일의 일부를 붙여 넣었습니다. 실행중인 행과 비슷한 행이 더 많이 있습니다. 그래서, 위의 정규식 문자열이 제대로 작동하지 않을까요? 또 다른 앵커 태그가 파일에 존재하기 때문에 배트맨의 이름을 얻는 방법은 'livePlayerCurrent'입니다. 현재 업데이트 전에 업데이트 한 이전 'livePlayerCurrent'정규식 문자열을 알려주시겠습니까? :-) – sammydude

+0

@ johan-sjoberg 득점 점에 대해 나는 타자 태그 바로 뒤에서 행을 가져오고 싶습니다. 가능한가? – sammydude

+0

@ johan-sjoberg 또한 HTML/XML 파서를 제안 해 주시겠습니까? 위 예제에서 REGEX를 사용하는 것과 어떻게 다릅니 까? – sammydude

0

을 정규식, 당신은 또한 Jsoup을 볼 수있다. 나는 그것을 내 프로젝트에서 사용했고, 잘못된 형식의 HTML을 잘 처리한다.) 편집기 도움말

감사합니다, EZFrag