2017-04-14 7 views
0

TL; DR는 :R에서 xml2 패키지를 사용하여 xml_read를 호출 할 때 html 상태 코드를 어떻게 확인합니까?

내가 현재 약간 황당의하는 XML API를 쿼리 해요 : 제목을

세부 사항을 참조하십시오.

가끔 요청을하면 요청한 데이터의 XML 파일이 반환됩니다. 다른 경우에는 요청이 대기 중이라는 메시지가 포함 된 XML 파일이 반환됩니다.

xpath 쿼리를 사용하여 계속 진행하기 전에 예상되는 데이터가 있는지 생각해 보았지만 유효하고 적절하게 제공된 쿼리로 인해 빈 세트가 생성 될 수 있습니다. false negative.

하나의 절약은 서버가 요청을 대기열에 넣을 때 다른 HTTP 상태 코드를 반환한다는 것입니다. 그러나 나는 코드가 무엇인지를 알려주는 xml_read의 결과를 검사하는 방법을 모르며 설명서가 지침을 제공하지 않는 것으로 보입니다.

+0

이렇게 ...'httr :: GET()'을 사용하고 상태를 테스트하려면 vs'xml2 :: read_xml()'을 사용하십시오. 나는 그 문제가 무엇인지 모르겠다. – hrbrmstr

+0

문제는 read_xml 호출 후 당신이 할 수 없다는 것을 몰랐다는 것입니다. * * 멍청한 느낌 * – Zelbinian

답변

1

이와 비슷한 것이 도움이 될 수 있습니다. 아이디어는 문서를 가져 와서 응답 코드를 확인한 다음 문서를 XML api How to determine if a url object in R base package returns '404 Not Found'?에 제공하는 것입니다. BTW, read_xmlxml2 패키지 또는 다른 패키지에서 찾으셨습니까?

+0

xml2 사용. 실제로 생각해 봤지만 GET 함수에서 read_xml을 사용하는 데 문제가있었습니다. 나는 그것을 파헤쳐 볼 것입니다. – Zelbinian

+0

?? httr : quickstart가 기본을 보여줍니다. 와우처럼, r <- GET ('yoururl')으로 응답 객체를 얻습니다. 이것은 텍스트뿐 아니라 구조화 된 객체입니다. 그런 다음 상태 (r)가있는 부분에 액세스하여 상태를 확인하고 내용 (r)을 사용하여 전달할 텍스트를 가져올 수 있습니다. read_xml – epi99

+0

실제로 작동하지 않습니다. 'content'의 결과를'read_xml'에 전달하려고하면'c ('XMLInternalDocument', 'XMLAbstractDocument') "'의 객체에 'read_xml'에 적용 가능한 메소드가 없습니다.''그러나' read_xml (r $ content)'이 작동합니다. – Zelbinian