使用原生AJAX和PHP 构建和解析XML格式的数据

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结构数据并响应

<?php
header(‘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>

  

时间: 2024-12-28 09:03:49

使用原生AJAX和PHP 构建和解析XML格式的数据的相关文章

Ajax实现异步操作实例_针对XML格式的请求数据

js分类中有一节[原生js异步请求,XML解析]主要说明了js前台是如何处理XML格式请求和如何接受由服务器返回的XML数据的解析,今天我将用一个实例来说明具体要如何操作. 前台的参数类型也是XML使用的是jquery: function test(){ var xmlString ="<bookstore>"+ "<book Type='必修课' ISBN='7-111-19149-2'>"+ "<title>数据结构

Android之解析XML格式数据

作用:在网络上传输数据时最常用的格式有两种,XML 和 JSON.解析XML格式数据获得与后台交互的信息. 种类: 3种:Pull 解析方式:SAX 解析方式:DOM解析方式. 1.使用Pull解析器解析XML文档Pull解析器的运行方式和SAX解析器很相似,它提供了类似的事件,比如文档开始.文档结束.开始元素和结束元素等.使用parser.next()方法可以进入下一个元素并触发相应的事件.各种事件均已数字的形式被发送,因此可以在程序中使用一个switch语句来对事件进行选择,然后进行相应的事

iOS开发之解析XML格式数据

XML格式的数据是一种数据的传输格式.因为它方便编写.结构清晰,所以深受程序猿的喜爱,非常多人都喜欢使用XML格式数据传输或者作为程序的配置信息. 如今我将来实如今iOS中解析XML格式数据,语言使用Swift. 首先自己写一个简单的XML: <data> <person age="15">zhangsan</person> <person age="2">lisi</person> <person&

XStream解析xml格式的字符串的方法

ProcessStatusUploadRootList processStatusUploadRootList = null; try { XStream xStream = new XStream(); xStream.alias("Root", ProcessStatusUploadRootList.class); xStream.alias("Header", ProcessStatusUploadHeader.class); xStream.alias(&q

我也来学着写写WINDOWS服务-解析xml抓取数据并插入数据库

项目告一段落,快到一年时间开发了两个系统,一个客户已经在试用,一个进入客户测试阶段,中间突然被项目经理(更喜欢叫他W工)分派一个每隔两小时用windows服务去抓取客户提供的外网xml,解析该xml,然后将截取的节点字段值插入到已经建好相应结构的表中.并记录日志. xml结构概要如下: <?xml version="1.0" encoding="UTF-8"?> <list> <info> <id>93ef7c7ccc

Delphi用QJSON解析JSON格式的数据

本来用superobject来解析JSON已经够用了,可惜这个东东不能在移动段使用,于是找到QJSON来处理. 这是一个国内高手写开源免费的东西,赞一个. 加入数据如下: {"message":"ok","status":"1","state":"3","data": [{"time":"2012-07-07 13:35:14"

PHP解析XML格式文档

<?php// 首先要建一个DOMDocument对象$xml = new DOMDocument();// 加载Xml文件$xml->load("3.xml");// 获取所有的post标签$postDom = $xml->getElementsByTagName("PROPERTIES");print_r($postDom);echo '<br>';// 循环遍历post标签    foreach($postDom as $post

使用第三方DOM解析XML格式文件

在解析XML格式文件的时候,使用SAX解析需要实现好多代理方法,比较难记,也容易出错,现在介绍一种由Google推出的第三方DOM(Document Object Model)来解析XML文件. 首先将该第三方文件拖到工程中.谷歌下载地址:https://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/ (注:由于该三方是很久之前的版本,还是基于MRC格式下的代码,所以需要改成ARC兼

SQL 里解析 XML 格式 字段 信息

DECLARE @ItemMessage XML DECLARE @ItemTable TABLE(No NVARCHAR(300),zje NVARCHAR(300),yfje NVARCHAR(300),bcje NVARCHAR(300),URL NVARCHAR(300),Remark NVARCHAR(300)) SET @ItemMessage=N'<List> <item> <No>SM-JG-201303-0189</No> <zje&