2012-05-10 3 views
2

Google 워드 프로세서 시트에서 ImportXML을 사용하여 sistrix API의 데이터를 가져 왔습니다. 그것은 잘 작동하지만 한 시트에 50 ImportXML 명령의 한계가 발생했습니다. 그래서 ImportXML 명령을 셀 (임시) 수식에 쓰고 결과 값을 가져 와서 대상 셀에 복사하는 스크립트를 사용했습니다. 시트에서 하나의 임시 셀에만 나타나기 때문에 필요한만큼 ImportXML 쿼리를 수행 할 수 있습니다. 여기서 문제는 ImportXML 쿼리 SOMETIMES가 N/A와 함께 매우 오래 걸리거나 반품된다는 것입니다.Google docs ImportXML이 (가) 스크립트에서 호출되었습니다.

가끔씩 내 스크립트가 ImportXML 쿼리가 반환 될 때까지 기다리지 않아 결과가 손상 될 수 있습니까? 공식합니다 (IMPORTXML 쿼리) 수행 및 셀에 반환 값을 쓴 경우

function GetFormulaData(formula, sheet, row, col) 
{ 

// write the formula (ImportXML(...)) to the specified cell 
sheet.getRange(row, col).setFormula(formula); 

// return the value of this cell resulting from the formula 
return sheet.getRange(row, col).getValue(); 
} 

그래서이 분명히에만 사용할 수 있습니다, 그래서 나중에 읽을 수 있습니다 : 나는 현재이 방법으로 그 일을하고있다. 스크립트에서 ImportXML을 호출하는 데 경험이나 대안이 있습니까?

내가 다른 방법으로 지금이 문제를 해결 한 Michbeck

을 접견. ImportXML보다 Google 문서 스크립트에서 UrlFetchapp()를 사용하는 것이 더 일반적입니다. 하지만 http 응답에서 xml 데이터를 직접 얻어야합니다. 이 질문은 닫을 수 있습니다.

답변

1

나는 이것을 다른 방식으로 해결했다. ImportXML보다 Google 문서 스크립트에서 UrlFetchapp()를 사용하는 것이 더 일반적입니다. 하지만 http 응답에서 xml 데이터를 직접 얻어야합니다.

나는 지금 이런 방식으로 수행 Michbeckable.How @

var response = UrlFetchApp.fetch(apiString).getContentText(); 
var xmlContent = Xml.parse(response, true); 
var answer = xmlContent.response.answer; 

// get what you need from the XML answer 
if (answer != null) 
{ 
    var element = answer.getElement('foo'); 
    if (element != null) 
    { 
     var attrib = element.getAttribute('bar');  
     if (attrib != null) 
      value = attrib.getValue(); // the value you want 
    } 
} 
+0

이 (UrlFetchApp을을 사용하여 구글 검색 결과의 제목, 설명 및 URL을 얻기 위해)? 그것은 더 나은 다음 importxml 일하고 있습니까? 적은 수의 N/A 오류를주고 있습니까? Google 스크립트에서 importxml을 사용하고 해결책을 찾고 싶다면 # N/A를 자주 사용하십시오. 미리 감사드립니다. – user1788736

+0

@ user1788736 : Google 검색 결과와 어떻게 작동하는지 모르겠지만 Sistrix API를 쿼리 한 것과 비슷해야합니다. 내가 사용한 코드 중 일부를 보여주기 위해 위의 대답을 편집했습니다. – Michbeckable