我正致力于使用JavaScript解析xml。
我目前的代码;
xmlDoc = $.parseXML( fnSuccess.__batchResponses[0].response.body ),
$xml = $( xmlDoc ),
$errormessage = $xml.find( "message" );
$ errormessage.text()并将其返回:
<code>SY/530</code>
<message xml:lang="en">S:W5:102 0010017899</message>
<innererror>
<transactionid>A831E4E4ADFDF1998E50005056AA3F7A</transactionid>
<timestamp/><Error_Resolution><SAP_Transaction/><SAP_Note/></Error_Resolution>
<errordetails><errordetail><
code>W5/102</code>
<message>S:W5:102 0010017899</message>
<propertyref/>
<severity>error</severity>
</errordetail><errordetail>
<code>W5/102</code>
<message>S:W5:102 0010017899</message>
<propertyref/>
<severity>error</severity>
</errordetail><errordetail>
<code>/IWBEP/CX_SD_GEN_DPC_BUSINS</code>
<message> --- Order is checked and approved ----</message>
<propertyref/>
<severity>error</severity>
</errordetail></errordetails>
</innererror></error>
但我只想获得---订单已经过检查并获得批准---- /IWBEP/CX_SD_GEN_DPC_BUSINS
。
如何在$ errormessage = $ xml.find(“message”)上使用哪个参数获取它;
感谢..
答案 0 :(得分:2)
这是我的版本 - 花了一段时间,所以有人在我玩的时候发布了
显示
--- Order is checked and approved ----
var xml = '<error><code>SY/530</code><message xml:lang="en">S:W5:102 0010017899</message><innererror><transactionid>A831E4E4ADFDF1998E50005056AA3F7A</transactionid><timestamp/><Error_Resolution><SAP_Transaction/><SAP_Note/></Error_Resolution><errordetails><errordetail><code>W5/102</code><message>S:W5:102 0010017899</message><propertyref/><severity>error</severity></errordetail><errordetail><code>W5/102</code><message>S:W5:102 0010017899</message><propertyref/><severity>error</severity></errordetail><errordetail><code>/IWBEP/CX_SD_GEN_DPC_BUSINS</code><message> --- Order is checked and approved ----</message><propertyref/><severity>error</severity></errordetail></errordetails></innererror></error>'
var xmlDoc = $.parseXML(xml),$xml = $(xmlDoc);
var messages = $xml.find("message");
var message = messages.filter(function(i,msg) {
console.log(msg)
return msg.textContent.indexOf("---") !=-1;
});
console.log(message[0].textContent)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
答案 1 :(得分:1)
$errormessage.find('message').eq(2).text()
将返回:“---订单已经过检查和批准----”
更新:您有一个非常好的解决方案。如果您的错误消息始终以'---'开头,那么:
$errormessage.find('message').filter(function(){
return ($(this).text().trim().substring(0, 3) == '---')
}).text()
如果您想要使用代码消息“/ IWBEP / CX_SD_GEN_DPC_BUSINS”,那么:
$errormessage.find('code').filter(function(){
return ($(this).text() == '/IWBEP/CX_SD_GEN_DPC_BUSINS')
}).next().text()