从 Apigee 中的 XML 中提取变量

Extracting variables from XML in Apigee

在使用 Apigee 时,我对 URL“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

>

我想使用提取变量策略从对象中获取名称 "brazil"。所以我的代码是这样的:

<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\"}"}"

有人可以帮我解决这个问题吗?

尝试仅指定 calloutResponse - 我认为您不需要变量名称的“.content”部分。