2012-06-06 7 views
3

Opa 웹 클라이언트를 XML-RPC 서버에 연결하려면. 요청을 보낼 수있는 올바른 방법은 되돌려 오파 XML 데이터 구조에 서버 응답을 구문 분석하는 올바른 방법은 무엇인가, 지금은 아마Opa를 사용하여 XML을 구문 분석하는 방법은 무엇입니까?

xml request_body = @xml(
    <methodCall> 
    <methodName>my_rpc_method</methodName> 
    <params>some_rpc_params</params> 
    </methodCall> 
) 

request = WebClient.Post.of_xml(
    {WebClient.Post.default_options with 
    content: {some: request_body} 
    } 
) 

WebClient.Post.try_post_with_options_async(
    server_uri, 
    request, 
    callback 
) 

function callback(response) { 
    ... 
} 

입니까? 내가 현재 내 자신의 XML 파서를 만들었지 만, 이것이 확실히 좋은 방법은 아닙니다.

그러나 그 중 어느 것이 오른쪽에있는 거? 이 문서는 (아직) 그들의 사용법에 관해 많이 말하지 않는다. 또는 WebClient.Result.as_xml을 통해 XML 형식으로 서버 응답을 직접 변환 할 수 있습니까?

주어진 문제가있는 실행 가능한 코드가 포함 된 repository을 만들었습니다. 포크로 고쳐서 고칠 수 있습니다.

해당 XML 서버 응답을 해당 데이터 구조로 구문 분석하는 가장 좋은 (그리고 가장 쉬운) 방법은 무엇입니까?

JHannes 그래서 여기

답변

2

좋아, 당신은 언급 세 가지 기능을 할 수있는 작업은 다음과 같습니다

  • Xml_parser.try_parseXML 파서를 호출하는 기능입니다. XML 파서는 xml_parser 키워드를 사용하여 작성되며 Opa의 parser과 다소 비슷합니다. 단, 텍스트가 아닌 XML을 구문 분석한다는 점만 다릅니다.
  • XmlConvert.of_stringstringxml으로 변환하는 기능이므로 텍스트 노드로 구성된 XML을 작성하는 간단한 기능입니다.
  • Xmlns.try_parse은 반대 변환을 시도합니다. 즉, string을 가져 와서이를 'xml'로 구문 분석하려고 시도합니다. 당신이 문자열 반응을 얻고이를 처리하려면

그럼 당신은 보통 좋겠 :

  1. Xmlns.try_parse
  2. 사용 xml로 구문 분석은 xml_parser
  3. Xml_parser.try_parse으로 호출 구축 XML 데이터의 구조적 표현을 가져옵니다.

데이터를 즉시 XML로 가져온 경우 위의 첫 번째 단계는 건너 뛸 수 있습니다. 도움이되는지 알려주세요.

관련 문제