我对http请求的回复如下。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetFoodFillPickingListDetailsResponse xmlns="http://Stock.Cssm.ServiceContracts/2007/06">
<FoodFillPickingListDetails>
<string>**77a3f4a3-8465-4dff-805b-08810aea1603|00712385**|RAW HOND PRAWN|F02F|FROZEN|Frozen|15|2|12|||False||||12/01/2018 18:48:23|False</string>
<string>**77a3f4a3-8465-4dff-805b-08810aea1603|00712392**|CKD HOND PRAWN|F02F|FROZEN|Frozen|15|2|12|||False||||12/01/2018 18:48:23|False</string>
<string>**77a3f4a3-8465-4dff-805b-08810aea1603|00570039**|MADAGASCAN PRWN|F02F|FROZEN|Frozen|15|2|12|||False||||12/01/2018 18:48:23|False</string>
<string>**77a3f4a3-8465-4dff-805b-08810aea1603|00452472**|XL G/LAND 350G|F02F|FROZEN|Frozen|15|2|12|||False||||12/01/2018 18:48:23|False</string>
</FoodFillPickingListDetails>
</GetFoodFillPickingListDetailsResponse>
</s:Body>
我需要解析上面响应中的粗体数据,并在下一个请求中使用它,如下面的xml。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SaveFoodFillPickingListDetailsResponse xmlns="http://Stock.Cssm.ServiceContracts/2007/06">
<FoodFillPickingListDetails>
<string>77a3f4a3-8465-4dff-805b-08810aea1603|00712385</string>
<string>77a3f4a3-8465-4dff-805b-08810aea1603|00712392</string>
<string>77a3f4a3-8465-4dff-805b-08810aea1603|00570039</string>
<string>77a3f4a3-8465-4dff-805b-08810aea1603|00452472</string>
</SaveFillPickingListDetails>
<SaveFoodFillPickingListDetailsResponse>
</s:Body>
我正在尝试使用Xpath提取器,但我只能提取'&lt; string&gt;'的完整值并且仅用于1个参数。
答案 0 :(得分:0)
我认为更好的想法是使用正则表达式,因为文本操作不是XPath的设计目标,它仍然可能但有点棘手。
在<string>
和第二次出现|
之间获取所有内容的相关正则表达式将类似于
<string>[^\|]*\|[^\|]*
演示:
参考文献: