2016-08-05 4 views
-1

나는 Obj-c 앱을 사용하고 있습니다. 지금은 그렇지 않습니다.NSScanner가 대상 문자열의 첫 번째 항목을 찾지 못하는 이유는 무엇입니까?

< DIV 클래스 = "PostContent"> < DIV 클래스 = "조"> < DIV 클래스 = "포스트"> < DIV 클래스 = "PostContent :이 내가 구문 분석하려고 문자열의 부분이다 "> < div> < img style ="background-image : url ('http://cdn.openisbn.com/images/no_book_cover.jpg'); 테두리 : 단색 1px # 383c40; "src =/표지/0345377443_220.jpg 너비 = 220 테두리 = 0 제목 =" 늑대 : 야생 여성 건축가의 신화와 이야기 "> </div> 저자 : < a Clerissa Pinkola Estes </a> < BR> 게시자 : < a href ="/ publisher/Ballantine_Books ""Ballantine Boo KS </a는> 천

여러 문자 후,이 텍스트가 나타납니다

< DIV 클래스 = "블록"ID = "LayoutColumn_3"> < DIV 클래스 = "blockTop"> </DIV > < h2 </h2> < div align = "center"> < a href = "/ isbn/006251380X /"> < img style = "패딩 : 1px; 테두리 : 1px solid # 6c6c6c; 배경 이미지 : url ('http://cdn.openisbn.com/images/no_book_cover.jpg'); "src =/cover/006251380X_72.jpg width = 72 height = 114 border = 0 title ="충실한 정원사 : 절대로 죽지 않을 현명한 이야기 ​​"> </a > < BR> < a fredful gardener : 절대로 죽을 수없는 것에 관한 현명한 이야기 ​​</a> < ahref = "/ isbn/1604076356 스타일 = "채우기 : 1px; 테두리 : 1px 단색 # 6c6c6c; 배경 이미지 :; URL ('http://cdn.openisbn.com/images/no_book_cover.jpg')는 "

이 제목 찾을 수 내 코드입니다 :

[scanner setScanLocation:0]; 
[scanner setCaseSensitive:NO]; 
[scanner scanUpToString:@" border=0 title=\"" intoString:nil]; // title 
scanner.scanLocation += 17; 
[scanner scanUpToString:@"\">" intoString:&tempString]; 
oTitle.text = tempString; 

무엇 일어나고있는 것은 그것이 처음 발견 (실행 여성을 건너 뛰는입니다 .. .)을 찾고 두 번째 항목 (T 그는 Faithful Gardner)을 찾은 다음 첫 번째 항목이 아닌 그 항목을 반환합니다.이 코드는 작동하지 않았기 때문에 코드를 변경하지 않았으므로 다른 사람이 이유를 말해 줄 수 있습니까? 작동하지 않으며 아마도 코드를 다시 작동 시키려면 몇 가지 변경 사항을 제안할까요? 정말 감사하겠습니다. 그것! 그 첫 번째 항목을 찾는 아니에요

+0

@rob no, 다시 확인했는데 * border *와 * title * 사이에 공백이 두 개 있지는 않지만 주석을 주셔서 감사합니다.Ray의 튜토리얼을 읽고 쉽게 맞는지 살펴 보겠습니다. : D – SpokaneDude

+0

@Rob 이중 공간에 대한 의견을 다시 작성하십시오. 그게 문제 였어! 나는 당신에게 의견에 대한 포인트를주고 싶습니다. SD – SpokaneDude

답변

1

그 이유는 특정 인스턴스가 border=0title="..." 사이에 두 개의 공백이 나타나는 것입니다 :

<img style="..." src=... width=220 border=0 title="Women Who Run With ..."> 

스캐너는 하나의 공간을 가진 문자열을 찾고 있습니다.


개인적으로 HTML 구문 분석기를 사용하는 것이 좋습니다. 처음 사용하면 약간의 어려움이 있지만, HTML을 구문 분석하는 매우 강력하고 유연한 방법이며, 입력을 문자 단위로 스캔하는 잡초에서 빠져 나옵니다. 그것은 이런 종류의 문제를 정확하게 고안된 것입니다. TFHpple 또는 Ray Wenderlich tutorial on how to parse HTML을 참조하십시오.

+0

감사합니다. Rob ... 내 코드가 맞았습니다. 그러나 근원은 단 하나 공간에서 두 배 공간으로 바뀌었다 ... 당신은 좋은 눈이있다! – SpokaneDude

관련 문제