2013-11-21 1 views
0

node.jsnode.io을 사용하여 변수에 문자열로있는 HTML 페이지를 구문 분석하려고합니다.node.io에서 HTML 구문 분석을 위해 node.io를 사용하는 방법은 무엇입니까?

HTML 문자열을 내 node.io 작업에 인수로 전달할 때 문제가 있습니다.

내 노드 파일 nodeiotest.js에 내 코드의 발췌입니다 :

var nodeio = require('node.io'); 

var methods = { 
    input: ['xxxxxxxxxxxxxxxx'], // htmlString is suppossed to come here 
    run: function (num) { 
     console.log(num); 
     this.emit('Hello World!'); 
    } 
} 

exports.job = new nodeio.Job(methods); 

가 어떻게 내 htmlString 인수에 보내려면 어떻게합니까 :

var nodeIOJob = require('./nodeiojobfile.js'); 
var nodeio = require('node.io'); 

vat htmlString = 'HTML String Here'; 

nodeio.start(nodeIOJob.job, function(err, output) { 
     console.log(output); 
}, true); 

다음은 내 파일 nodeiojobfile.js의 발췌 한 것입니다 다른 파일에 내 직업?

또한 파일을받은 후 HTML로 구문 분석하고 일부 기본 CSS 선택 (예 : getElementById() 등)을 수행하고 특정 HTML 요소를 offsetHeight으로 계산해야합니다. 설명서에 따르면 get()getHTML() 메서드를 사용하여 URL의 HTML을 구문 분석 할 수 있지만 문자열의 HTML은 어떻게됩니까? 어떻게 그들을 파싱합니까?

은 테스트를 위해 나는 HTML 다음 그가를 사용하고 있습니다 : 나는 <p>을 선택하고 높이를 찾기 위해 노력하고

<div> 
    <p id="p1"> 
     Testing document 
    </p> 
</div> 

.

아무도 도와 줄 수 있습니까? Thnx 사전에!

+0

글쎄, 내 머리 내가 그것을 할 수 없다고 결정했다 나의 키보드 키이어야하지 부수고 시간 후 아주 비효율적 인 작업을하지 않고서도 ... 친절하게도 누군가가 이것을위한 가벼운 솔루션을 찾으면 알려주세요. –

답변

0

나는 node.io에 익숙하지 해요,하지만 난 당신이 뭔가를하려는 생각 :

// nodeiotest.js 
... 
var htmlString = 'HTML String Here'; 
nodeio.start(nodeIOJob.job(htmlString), function(err, output) { 
    console.log(output); 
}, true); 

// nodeiojobfile.js 
var nodeio = require('node.io'); 

module.exports.job = function(htmlString) { 
    var methods = { 
    input: [ htmlString ], 
    run : function (num) { 
     console.log(num); 
     this.emit('Hello World!'); 
    } 
    }; 
    return new nodeio.Job(methods); 
}; 
+0

thnx robert하지만 더 큰 문제는 서버 측에서 요소 높이를 찾는 것입니다. 나는 node.io와 함께 할 수없는 것 같아요 jsdom 또한 그것에 관한 버그가 ..... 당신은 어쩌면 phantomjs 또는 비슷한 비슷한 서버 쪽 헤드리스 브라우저를위한 해결책을 제안 할 수 있겠습니까? –

+0

@ SurenderThakran 예 ~ 브라우저 스타일의 솔루션을 사용해야합니다 (PhantomJS와 같습니다). – robertklep

+0

나는 이것을 두려워했다. 'node.js'와 호환되는 브라우저를 제안 해 주시겠습니까? PhantomJS는 노드 모듈로 제공되지 않고 자식 프로세스로 사용해야하므로 명령 줄에서 헤드리스 브라우저를 실행하는 경우 요소의 높이를 얻는 방법을 모르겠습니다. –

관련 문제