从 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”部分。
在使用 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”部分。