我想将SFDCProductList的内容提取到一个变量中,该变量是一个数组。 这该怎么做?
我有以下xml:
。
。
。
10000
谢谢!您的请求已成功执行。代码PIM 10000
sgfsuifg
sjkfbksgfsudf
</SFDCProduct>
</SFDCProductList>
<SFDCProductList>
.
.
.
</SFDCProductList>
<SFDCProductList>
.
.
.
</SFDCProductList>
<TransportInformation>
.
.
.
</TransportInformation>
</EnhancedServicePrequalResponse>
<EnhancedServicePrequalResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Code>10000</Code>
<Message>Thank You!</Message>
<SFDCProductList>
<SFDCProduct>
<OfferName>XYZ</OfferName>
<OfferDisplayName>New Offer</OfferDisplayName>
<OfferType>New</OfferType>
<EndDate>2021-02-16</EndDate>
<OfferLineItemList>
<OfferLineItem>
<OfferLineItemCategory>Transport Service</OfferLineItemCategory>
<OfferLineItemName>transport</OfferLineItemName>
</OfferLineItem>
<OfferLineItem>
<OfferLineItemCategory>Device</OfferLineItemCategory>
<OfferLineItemName>Billing</OfferLineItemName>
</OfferLineItem>
</OfferLineItemList>
<TransportName>BR</TransportName>
</SFDCProduct>
</SFDCProductList>
<SFDCProductList>
<SFDCProduct>
<OfferName>Upgrade</OfferName>
<OfferDisplayName>Upgrade</OfferDisplayName>
<OfferType>Upgrade</OfferType>
<EndDate>2021-02-16</EndDate>
<OfferLineItemList>
<OfferLineItem>
<OfferLineItemCategory>Transport</OfferLineItemCategory>
<OfferLineItemName>Billing</OfferLineItemName>
</OfferLineItem>
<OfferLineItem>
<OfferLineItemCategory>Device</OfferLineItemCategory>
<OfferLineItemName>Billing</OfferLineItemName>
</OfferLineItem>
</OfferLineItemList>
<TransportName>JR</TransportName>
</SFDCProduct>
</SFDCProductList>
<TransportInformation>
<TransportFeasibilityParameter>
<AvailabilityFlag>true</AvailabilityFlag>
<BusinessAvailabilityFlag>true</BusinessAvailabilityFlag>
<TransportName>BR</TransportName>
</TransportFeasibilityParameter>
<TransportFeasibilityParameter>
<AvailabilityFlag>true</AvailabilityFlag>
<BusinessAvailabilityFlag>true</BusinessAvailabilityFlag>
<TransportName>JR/TransportName>
</TransportFeasibilityParameter>
</TransportInformation>
</EnhancedServicePrequalResponse>
我尝试使用xpath提取程序,但未将其存储在变量中。
我已成功使用边界提取器提取了SFDCProductlist,但作为数组,我只希望该SFDCProductlist在元素中具有“ New”关键字。
The beanshell Script:
int SFDCProduct_matchNr =vars.get("SFDCProduct_matchNr");
String list="SFDCProduct"+"_"+"SFDCProduct_matchNr";
int SFDCProduct_matchNrvalue=SFDCProduct_matchNr-1;
vars.put("SFDCProduct_matchNr", "SFDCProduct_matchNrvalue");
vars.put("sfdc", "list");enter code here
But still its not assigning the sfdc with SFDCProduct_1 value??
答案 0 :(得分:1)
要提取特定边界内的内容,可以使用Boundary Extractor:
选择作为左边界,</SFDCProductList>
作为右边界。
在Name of created variable
中将新的变量名称作为productList放置,然后在JSR223脚本中将其用作${productList}
或vars.get("productList")
。
允许用户使用左右边界从服务器响应中提取值。作为后处理器,此元素将在其范围内的每个Sample请求之后执行,测试边界,提取请求的值,生成模板字符串,并将结果存储到给定的变量名称中。
答案 1 :(得分:1)
根据您的响应代码,似乎有不止一个产品列表。
要获取所有内容,您需要在边界提取器中将匹配号设置为-1。然后,使用vars.get {“ Product_List_1”}来获取特定的对象。
如果您只需要一个变量,一种方法是合并不同的数组列表。
答案 2 :(得分:1)
没有看到完整的XML响应,我们无法提出确切的解决方案,但是对于XML响应类型,坚持使用XPath Extractor
相关的XPath查询应类似于://SFDCProductList
-它基本上将返回<SFDCProductList>
标签下的所有内容:
如果没有,请使用View Results Tree侦听器的“ XPath Tester”模式再次检查XPath表达式,在某些情况下,您可能需要:
Use Tidy
框参考文献: