2009-06-04 6 views
1

~ 7000 단어 정도의 큰 문서가 있다고 가정 해 보겠습니다. 모든 데이터를 서버에 보내야합니다. jquery, prototype 등을 사용할 기회가 없습니다. 깨끗한 OO javascript 여야합니다. 샘플 페이지는 json russian 페이지입니다. 모든 태그와 html 마크 업을 단어에서 제외합니다. 자바 스크립트로 문서 DOM 트리의 모든 단어 모으기

내 질문은;

  • 1. 문서에서 모든 (utf8) 단어를 수집/수집 할 수 있습니까?
  • 2. 어떻게 결과를 JSON 데이터로 변환 할 수 있습니까?

  • 감사

    +0

    문서는 순수 텍스트입니까? 아니면 HTML 태그 등이 있습니까? –

    +0

    그리고 단어를 어떻게 보내시겠습니까? 각 단어를 따로 따로 또는 전체 텍스트로? –

    +0

    문서는 html 문서입니다. 데이터 전송은 다음과 같을 수 있습니다. { "words": [ "word1", "word2", "word3"]} –

    답변

    3

    이 정말 객체 지향 프로그래밍을위한 작업은 아닌 것 같아. 섹시한 재귀 함수가 훨씬 잘 작동합니다.

    var output=[]; 
    
    function scan(element) { 
        var children=element.childNodes; 
        for (var child in children){ 
         if (children[child].nodeValue) { 
          output.push(children[child].nodeValue); 
         }else { 
          scan(children[child]); 
         }; 
        }; 
    }; 
    
    scan(window.document.body); 
    

    이렇게하면 텍스트를 개별 단어로 나눌 수 없으며 JSON을 생성하지 않지만 개별 단어 목록을 제공합니다. 여전히 텍스트를 정리해야합니다. 테스트 2 초 동안 나는 자바 스크립트와 개행 (\ n)을 포함한 모든 텍스트를 표시하는 것을 좋아한다는 것을 발견했다. 어쩌면 기분이 좋으면 더 많은 코드를 추가 할 것입니다. 그러나 이것은 당신을 가야합니다.

    JSON으로 변환하려면 Douglas Crockford 's toJSON 코드를 시도하십시오. 그냥 구글.

    +0

    이렇게 간단합니다. 코드 조직이 json 데이터를 고려하지 않습니다. 그것은 질문에 맞지 않습니다 :) 어쨌든 고마워요. –

    +0

    nodevalue! = single word –

    +0

    링크 그랜드 마스터에게 감사드립니다. 후디니로서 위대하다. –