【发布时间】:2022-01-14 16:40:04
【问题描述】:
我想用 ILE RPG (Fully-Free RPG) 在一个数据结构中解析这个 xml 响应,其中包含一个货币字段和一个值字段。
这是我对soap webservice的回复:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetCurrentExchangeRatesResponse xmlns="http://www.mnb.hu/webservices/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<GetCurrentExchangeRatesResult><MNBCurrentExchangeRates><Day date="2021-12-09"><Rate unit="1" curr="AUD">231,49</Rate><Rate unit="1" curr="BGN">187,05</Rate><Rate unit="1" curr="BRL">58,41</Rate><Rate unit="1" curr="CAD">254,93</Rate><Rate unit="1" curr="CHF">350,64</Rate><Rate unit="1" curr="CNY">50,92</Rate><Rate unit="1" curr="CZK">14,38</Rate><Rate unit="1" curr="DKK">49,20</Rate><Rate unit="1" curr="EUR">365,85</Rate><Rate unit="1" curr="GBP">426,84</Rate><Rate unit="1" curr="HKD">41,45</Rate><Rate unit="1" curr="HRK">48,61</Rate><Rate unit="100" curr="IDR">2,25</Rate><Rate unit="1" curr="ILS">104,13</Rate><Rate unit="1" curr="INR">4,28</Rate><Rate unit="1" curr="ISK">2,48</Rate><Rate unit="100" curr="JPY">284,60</Rate><Rate unit="100" curr="KRW">27,50</Rate><Rate unit="1" curr="MXN">15,41</Rate><Rate unit="1" curr="MYR">76,66</Rate><Rate unit="1" curr="NOK">36,17</Rate><Rate unit="1" curr="NZD">219,85</Rate><Rate unit="1" curr="PHP">6,41</Rate><Rate unit="1" curr="PLN">79,17</Rate><Rate unit="1" curr="RON">73,91</Rate><Rate unit="1" curr="RSD">3,11</Rate><Rate unit="1" curr="RUB">4,39</Rate><Rate unit="1" curr="SEK">35,70</Rate><Rate unit="1" curr="SGD">236,93</Rate><Rate unit="1" curr="THB">9,66</Rate><Rate unit="1" curr="TRY">23,50</Rate><Rate unit="1" curr="UAH">11,93</Rate><Rate unit="1" curr="USD">323,22</Rate><Rate unit="1" curr="ZAR">20,47</Rate></Day></MNBCurrentExchangeRates></GetCurrentExchangeRatesResult>
</GetCurrentExchangeRatesResponse>
</s:Body>
</s:Envelope>
货币仅用 < 分隔。
我这样尝试过,但是我的变量 xmlout 在 xml-into 之后是空的。
dcl-ds xmlout qualified;
Tempout char(2129);
END-DS;
xml-into xmlout %xml(postResult: 'case=any ns=remove allowextra=yes +
path=Envelope/Body/GetCurrentExchangeRatesResponse/GetCurrentExchangeRatesResult');
那么我如何更改或扩展我的 to 代码以将所有货币及其值放入结构化 ds 中?
【问题讨论】:
-
如果他们将 XML 放入 SOAP (XML) 有效负载中,而不是需要转义和解析的转义字符串化 XML 字符串,而不只是一些应该很大的简单 XPath,一切都会更容易XML 有效负载.....
-
懒惰的开发人员这样做是因为他们不想弄清楚如何处理
xs:any,而宁愿只是说他们将制作有效负载xs:string并将其变成别人的问题 -
找到更好的构建网络服务?
-
是的很好,但客户想使用这个……
标签: xml soap websphere rpgle rpg