在Apigee中从XML中提取变量

时间:2015-08-10 13:31:51

标签: xml apigee

在使用Apigee时,我对此网址进行了服务标注" http://api.worldbank.org/countries/br"我将内容保存在" calloutResponse"。 所以现在calloutResponse应该包含这个:

> wb:countries xmlns:wb="http://www.worldbank.org" page="1" pages="1" per_page="50" total="1">
<wb:country id="BRA">
<wb:iso2Code>BR</wb:iso2Code>
<wb:name>Brazil</wb:name>
<wb:region id="LCN">Latin America & Caribbean (all income levels)</wb:region>
<wb:adminregion id="LAC">Latin America & Caribbean (developing only)</wb:adminregion>
<wb:incomeLevel id="UMC">Upper middle income</wb:incomeLevel>
<wb:lendingType id="IBD">IBRD</wb:lendingType>
<wb:capitalCity>Brasilia</wb:capitalCity>
<wb:longitude>-47.9292</wb:longitude>
<wb:latitude>-15.7801</wb:latitude>
</wb:country>
</wb:countries

>

我想得到这个名字&#34;巴西&#34;使用提取变量策略退出对象。所以我的代码就是这样:

<ExtractVariables name="ExtractVariables4">
   <Source>calloutResponse.content</Source>
   <XMLPayload>
      <Namespaces>
        <Namespace prefix="dir">http://www.worldbank.org" page="1" pages="1" per_page="50" total="1</Namespace>
      </Namespaces>
      <Variable name="extraction" >
         <XPath>/dir:countries/dir:country/dir:name</XPath>
      </Variable>  
   </XMLPayload>
   <VariablePrefix>directionsresponse</VariablePrefix>
</ExtractVariables>

我可以在跟踪中看到calloutResponse.content已正确上传,但试图获取该名称让我的身体错误500

"{"fault":"{\"detail\":{\"errorcode\":\"steps.extractvariables.ExecutionFailed\"},\"faultstring\":\"Failed to execute the ExtractVariables: ExtractVariables4\"}"}"

有人可以帮我这个案子吗?

1 个答案:

答案 0 :(得分:0)

尝试仅指定calloutResponse - 我认为您不需要&#34; .content&#34;变量名称的一部分。