2017-01-27 105 views
-1

我試圖從API返回信息的XML響應(BBB實際上)看起來它的響應,如:閱讀和使用Ajax

<?xml version="1.0"?> 
<response> 
    <returncode>SUCCESS</returncode> 
    <meetingID>ldapreader</meetingID> 
    <attendeePW>accounts123</attendeePW> 
    <moderatorPW>accounts456</moderatorPW> 
    <createTime>1485524358342</createTime> 
    <voiceBridge>24686</voiceBridge> 
    <dialNumber>613-555-1234</dialNumber> 
    <createDate>Fri Jan 27 14:39:18 CET 2017</createDate> 
    <hasUserJoined>false</hasUserJoined> 
    <duration>0</duration> 
    <hasBeenForciblyEnded>false</hasBeenForciblyEnded> 
    <messageKey>duplicateWarning</messageKey> 
    <message> 
     This conference was already in existence and may currently be in progress. 
    </message> 
</response> 

爲Chrome瀏覽器說,這個XML文件沒有出現有任何樣式信息與之有關

我寫這個是有一些文章中,我在此網站上發現一個腳本的基礎,但我堅持......

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 

    function myCall() { 
     var request = $.ajax({ 
      url: "<?php echo $fulllink; ?>", 
      type: "GET",    
      dataType: "xml" 
     }); 

     request.done(function(xml) { 
        // Parse the xml file and get data 
     var xmlDoc = $.parseXML(xml), 
      $xml = $(xmlDoc); 
     $xml.find('response').each(function() { 
      $("#mybox").append($(this).text() + "<br />"); 
     }); 
      // $("#mybox").html(xml);   
     }); 

     request.fail(function(jqXHR, textStatus) { 
      alert("Request failed: " + textStatus); 
     }); 
    } 
</script> 
     <style type="text/css"> 
      #mybox { 
       width: 300px; 
       height: 250px; 
       border: 1px solid #999; 
      } 
     </style> 
<input type="button" value="Update" onclick="myCall()" /> 
    <div id="mybox"> </div> 

不管我試圖找到(響應或返回碼,消息...)我的div保持空白,我沒有看到Chrome的調試工具中的任何錯誤。我可以看到XHR請求罰款...

也許有人知道更深的knowledgde可以幫助我嗎?
感謝您的燈光! 塞德里克

+0

您的標題提到PHP,但這裏沒有PHP代碼,只有JavaScript。 – miken32

+0

在完成的回調中進行調試。其中一個jquery過濾/選擇方法沒有找到任何東西。哪一個?這肯定有可能.find由於「response」是根,所以找不到「響應」。另外,'response'節點不包含文本...所以...清楚地說不會返回任何東西? –

+0

@KevinB你是對的,但我嘗試使用消息或meetingID或任何其他,但它仍然不會從xml讀取任何東西...我試圖添加XML標頭,如下建議騙取這個: \t \t var $ xml1 = $(XML); \t \t var xml2 ='<?xml version =「1.0」?>'+ $ xml1; var xmlDoc = $ .parseXML(xml2); 但它仍然無法工作.... – user3518694

回答

1

您可以通過使用jQuery.parseXML()。其中做到了這一點使用瀏覽器來創建一個有效的XML文檔的本地解析功能。然後可以將此文檔傳遞給jQuery以創建可以遍歷和操作的典型jQuery對象。

使用XML字符串創建jQuery對象並獲取 節點的值。

var xml="<?xml version="1.0"?> 
<response> 
    <returncode>SUCCESS</returncode> 
    <meetingID>ldapreader</meetingID> 
    <attendeePW>accounts123</attendeePW> 
    <moderatorPW>accounts456</moderatorPW> 
    <createTime>1485524358342</createTime> 
    <voiceBridge>24686</voiceBridge> 
    <dialNumber>613-555-1234</dialNumber> 
    <createDate>Fri Jan 27 14:39:18 CET 2017</createDate> 
    <hasUserJoined>false</hasUserJoined> 
    <duration>0</duration> 
    <hasBeenForciblyEnded>false</hasBeenForciblyEnded> 
    <messageKey>duplicateWarning</messageKey> 
    <message> 
     This conference was already in existence and may currently be in progress. 
    </message> 
</response>"; 
    xmlDoc = $.parseXML(xml), 
     $xml = $(xmlDoc), 
     $meetingID = $xml.find("meetingID"); 


$("#anotherElement").append($meetingID.text()); 
+0

嗨哈桑,謝謝你的回答。 我已將此代碼更改爲此, var xmlDoc = $ .parseXML(xml); $ xml = $(xmlDoc); \t $ meetingID = $ xml.find(「meetingID」); (「#mybox」).append($ meetingID.text()); \t \t}); 但它仍然無法工作..任何想法? – user3518694

+0

@HassanALi jQuery在使用「xml」數據類型時自動使用$ .parseXML。 –

-1

隨着simpleXML,這是因爲讀取XML,然後訪問它通過一個簡單的內容閱讀對象一樣簡單。

<?php 

$xml="<?xml version='1.0'?> 
<response> 
    <returncode>SUCCESS</returncode> 
    <meetingID>ldapreader</meetingID> 
    <attendeePW>accounts123</attendeePW> 
    <moderatorPW>accounts456</moderatorPW> 
    <createTime>1485524358342</createTime> 
    <voiceBridge>24686</voiceBridge> 
    <dialNumber>613-555-1234</dialNumber> 
    <createDate>Fri Jan 27 14:39:18 CET 2017</createDate> 
    <hasUserJoined>false</hasUserJoined> 
    <duration>0</duration> 
    <hasBeenForciblyEnded>false</hasBeenForciblyEnded> 
    <messageKey>duplicateWarning</messageKey> 
    <message> 
     This conference was already in existence and may currently be in progress. 
    </message> 
</response>"; 


$xmlString=simplexml_load_string($xml); 
echo $xmlString->returncode[0]; 


?> 
+1

這不是一個PHP的問題 – miken32

+1

所以你應該刪除這個答案 – miken32

+0

閱讀和XML的PHP​​/AJAX響應----多數民衆贊成他的問題,所以我怎麼可以考慮它不是一個PHP的問題 – Addden