XML请求和响应与提取?
问题描述:
邮政服务有一个API,允许您发送包裹重量,旅行信息等XML请求。它会返回一个XML响应。XML请求和响应与提取?
如何处理xml响应?我需要在客户端解析xml,或者更可取的是将xml放入一个变量中,我可以发送到我的laravel后端进行解析。
顺便说一句,我正在使用反应和laravel。
getPostagePrice =() => {
fetch('http://production.shippingapis.com/ShippingApi.dll?API=RateV4&XML=<RateV4Request USERID="XXXXXXXXXXX"><PackageID="1ST"><Service>PRIORITY</Service><ZipOrigination>44106</ZipOrigination><ZipDestination>20770</ZipDestination><Pounds>1</Pounds><Ounces>8</Ounces><Container>NONRECTANGULAR</Container><Size>LARGE</Size><Width>15</Width><Length>30</Length><Height>15</Height><Girth>55</Girth></Package></RateV4Request>', {
method: 'get',
}).then((response) => {
console.log(response.text());
}).then(str => (new window.DOMParser()).parseFromString(str, "text/xml")
).then(data => console.log(data));
}
答
Response.text()
返回Promise
,链.then()
得到.text()
通话Promise
值。
如果你期待一个Promise
从getPostagePrice
功能,从getPostagePrice()
通话return
fetch()
调用返回。
getPostagePrice =() => {
fetch('/path/to/server')
.then(response => response.text())
.then(str => (new window.DOMParser()).parseFromString(str, "text/xml"))
.then(data => console.log(data));
}
+0
@JasparLamarCrab请参阅[如何让用户输入颜色非十六进制或rbga)列表自定义,但确保它是有效的](https://stackoverflow.com/questions/44361825/how-to-allow-user-to-input-a-color-non-hex-or-rbga -for-list-customization-but/44362289#44362289)的类似模式 – guest271314
读取[抓取文档】(https://developer.mozilla.org/en/docs/Web/API/Fetch_API)...通常你会'。然后((响应)=> response.text ())'然后下一个。然后文本可用......即用'return response.text()'替换'console.log(response.text())',以便**返回** –
@JaromandaX注意,“something”是一个'Promise','.text()','.blob()','.arrayBuffer()',如果在环境中实现了'.formData()', 'Response'对象每个都返回一个'Promise' – guest271314
我的观点是,第一个.then根本没有返回任何东西,并且确实表明它应该返回'response.text()' - 所以,不知道什么点你正在试图制作@ guest271314 –