2013-09-05 4 views
1

두 상수와 변수 텍스트를 찾기 나는 AppleScript로 새로운 오전. 사파리를 통해 웹 페이지에서 변수에 문자열을 반환하려고합니다. 대상 문자열은 변경되지만 앞뒤 단어는 정적입니다.AppleScript를

예 : 애플 1293.34 USD

은 "애플"과 "USD"변하지 않는,하지만 내가 원하는 모든 사이의 숫자입니다.

는 요소는 ID가없는 나는 자바 스크립트와 클래스려고 운이 없었어요.

감사합니다. :)

+0

이런 종류의 질문을하는 경우 언제든지 추천 할만한 사이트 링크를 삽입하는 것이 좋습니다. – markhunte

+0

누군가가이 부분을 손에 넣기를 바랍니다. –

답변

0

먼저 요소를 찾아야합니다.

var element = document.getElementById("elementID"); 

그런 다음 값을 얻을 :

var value = parseFloat(element.innerText.split(" ")[1]) 
+0

요소에 ID가 없습니다. – Mark

0

당신은 컬을 구문 분석을 시도 할 수 있습니다 ...

set myUrl to "http://stackoverflow.com/questions/18633200/finding-variable-text-between-two-constants-with-applescript" 

set xxx to do shell script "curl " & quoted form of myUrl & " | grep -o Apple.*USD | sed 's/Apple\\(.*\\)USD/\\1/'" 
0

다음은 텍스트 주어진 AppleScript로 방법입니다. Apple이 본문에서 한 번만 발견된다고 가정하지 않습니다. 그러면 애플이 2 달러 후반에 미화로 따라간 곳을 살펴보고 알맞은 가치를 얻을 것입니다.

set theText to "USD some words Apple USD more words Apple 1293.34 USD some words Apple USD" 

set {tids, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "Apple"} 
set textItems to text items of theText 
set AppleScript's text item delimiters to tids 

set theValue to missing value 
repeat with i from 2 to (count of textItems) 
    set thisItem to item i of textItems 
    try 
     if word 2 of thisItem is "USD" then 
      set theValue to word 1 of thisItem 
      exit repeat 
     end if 
    end try 
end repeat 

return theValue 
+0

여기에 무슨 일이 일어나고 있는지 설명해 주시겠습니까? –

+0

기본적으로 스크립트의 시작 부분에있는 "텍스트 항목"은 theText 문자열을 목록으로 바꿉니다. 목록은 단어 "Apple"을 기반으로 구성 요소로 나뉩니다. { "USD some words", "USD more words", "1293.34 USD some words", "USD"} 목록이 있습니다. 그런 다음 반복 루프를 사용하여 목록 항목을 반복합니다. 목록 항목 중 하나의 두 번째 단어가 "USD"이면 내가 찾고있는 것을 찾았습니다. 따라서 목록 항목의 첫 단어를 반환합니다. 세 번째 항목이 내가 원하는 항목임을 알 수 있으며 해당 항목의 첫 번째 단어는 "1293.34"입니다. – regulus6633