使用原生AJAX和PHP 構建和解析XML格式的資料

來源:互聯網
上載者:User

標籤:margin   innerhtml   name   on()   php   str   區分   解析   play   

XML:eXtensible Markup Language,可擴充的標籤語言,本身是一種字串格式,用於描述批量複合資料,

文法特點:

   (1)所有的資料放在標籤中

   (2)整個XML字串有且只能有一個根標籤

        (3)所有的標籤名都可以自訂,但嚴格區分大小寫,且開始和結束標記必須完全一樣

        (4)每個標籤都可以自訂屬性,屬性必須有值,值必須用單引號/雙引號括起來

        (5)每個標籤都可以定義任意的子標籤,標籤可以嵌套,但不能交叉

 

注意:HTML和XML的區別

         HTML文法隨意;XML文法嚴格;

         HTML標籤預定義好了;XML標籤都是自訂的;

         HTML用於描述網頁的結構;XML標籤用於描述資料;

 

下面是一段我們需要用來攜帶資料資訊的XML,接下來我們要通過PHP構建XML格式的資料

<?xml version="1.0" encoding="UTF-8" ?> <productlist><product pid="101"><pname>三星</pname><price>35.50</price><pic>1.jpg</pic></product><product pid="102"><pname>閃迪</pname><price>45.50</price><pic>2.jpg</pic></product><product pid="103"><pname>金士頓</pname><price>30.50</price><pic>3.jpg</pic></product></productlist>

  

PHP構建XML結構資料並響應

<?phpheader(‘Content-Type:application/xml‘);$conn = mysqli_connect("127.0.0.1","root","","dangdang",3306);$sql = "SET NAMES UTF8";mysqli_query($conn,$sql);$sql = "SELECT * FROM book";$result = mysqli_query($conn,$sql);$list = mysqli_fetch_all($result,MYSQLI_ASSOC);$str = "<?xml version=‘1.0‘ encoding=‘UTF-8‘ ?>";$str .= "<productlist>";foreach($list as $b){$str .= "<product pid=‘$b[bid]‘><pname>$b[bname]</pname><price>$b[price]</price><pic>$b[pic]</pic></product>";}$str .= "</productlist>";echo $str;

  

接收XML並解析    因為XML屬於XMLDOM對象 只能使用核心DOM方法進行解析

<!doctype html><html> <head>  <meta charset="UTF-8">  <title>...</title>  <style>#btLoadMore{display:block;width:100%;margin: 20px auto;padding:5px;}  </style> </head> <body><table width="100%" border="1"><thead><tr><th>編號</th><th>名稱</th><th>價格</th><th>圖片</th></tr></thead><tbody id="tbodyList"><tr><td colspan="4"></td></tr></tbody></table><button id="btLoadMore">載入更多</button><script type="text/javascript">btLoadMore.onclick = function(){var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){if(xhr.readyState===4){if(xhr.status==200){doResponse(xhr);}else{alert("響應完成但有問題");}}}xhr.open("GET","book_select.php",true);xhr.send(null);function doResponse(xhr){var list= xhr.responseXML.querySelectorAll("product");//console.log(list);var frag = "";for(var i = 0 ; i<list.length ; i++){var b = list[i];var id = b.getAttribute("bid");var bn = b.querySelector("pname").innerHTML;var pr = b.querySelector("price").innerHTML;var pc = b.querySelector("pic").innerHTML;console.log(pc);frag+=`<tr>  <td>${bn}</td>  <td>${pr}</td>  <td>${pc}</td>    <tr>`;}tbodyList.innerHTML=frag;}}</script> </body></html>

  

使用原生AJAX和PHP 構建和解析XML格式的資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.