2016-10-18 3 views
-1

내가 좋아하는 뭔가가사용 방법 후손

doc.css('tests').map{ |node| file.write node.first['name'] if node.descendants('results').first['name'] == "test" } 

을하지만 어떤 방법 descendants이 없습니다. 두 번째 방법을 사용하려면 스 니펫에서 무엇을 수정해야합니까?

+1

는이 스크립트를 실행해야 할 때 샘플 테스트 파일을 추가 할 수 있습니다 시도? – Kashyap

+0

실제 파일에 기밀 데이터가 포함되어 있으므로 여기에 게시하기 전에 위의 내용을 변경했습니다. – InQusitive

+0

"[mcve]"를 읽으십시오. 코드에 문제가 있는지 묻는 경우 문제가 있음을 나타내는 최소 입력 데이터를 포함하십시오. 그것 없이는 우리는 시간 낭비하는 코드와 일치하는 무언가를 만들어 내려고 노력해야합니다. –

답변

1

doc.css('tests').each { |node| file.write node['name'] if node.css('results[name="test"]').any? } 

또는

doc.css('tests').select { |node| node.css('results[name="test"]').any? }.each { |node| file.write node['name'] } 
+0

다시 돌아 왔습니다. :). 어떻게 든 두 번째 코드는 첫 번째 코드보다 빠릅니다. 나는 왜 그런지 이해하지 못한다. 어쨌든 그것이 내가 그것을 확인하고 싶었던 이유였다. 최소한 10 배 이상 빠릅니다. – InQusitive