我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

php写xml接口数据 接口返回xml格式的数据

PHP操作xml的问题,如何插入数据

你好,PHP操作XML新人为你解答!

成都创新互联主要从事网站建设、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务周口,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

$xml = simplexml_load_file($xmlsrc);//初始化并获取其根

//看得出来,你的user要插入到根的下一层,那么就不必进行循环索引了,因为根已经获取到了

$user = $xml-addChild("user", "");//在$xml节点下插入名为user的节点,且必须赋值,这里因为没有值,所以就留空,但不能不写。

//然后再在user节点下插入节点,这里已经把user节点赋给$user了

$name = $user-addChild("name", $_POST["name"]);//把接收到的name值添加到user节点下的name节点中,下同

$sex = $user-addChild("sex", $_POST["sex"]);//因为这里的name和sex添加后不再用了,可以不把节点赋值出来,即不须写上$sex=

$hei = $user-addChild("height", $_POST["height"]);

$hei-addAttribute("type", "cm");//给height节点添加属性

这个SimpleXML我昨天才开始学,感觉挺不错的样子,操作代码直观,可读性强,多用用熟练了就好

php返回xml接口

1. 把要输出的内容做成array.

2. 用array转换xml的函数(下例:arrtoxml),把array转换成xml.

3. 输出。

function arrtoxml($arr,$dom=0,$item=0){

if (!$dom){

$dom = new DOMDocument("1.0");

}

if(!$item){

$item = $dom-createElement("root");

$dom-appendChild($item);

}

foreach ($arr as $key=$val){

$itemx = $dom-createElement(is_string($key)?$key:"item");

$item-appendChild($itemx);

if (!is_array($val)){

$text = $dom-createTextNode($val);

$itemx-appendChild($text);

}else {

arrtoxml($val,$dom,$itemx);

}

}

return $dom-saveXML();

}

php如何通过xml传递数据

获取request中body的字符串数据,比如一个数组转成xml后,你用post方式给服务器发送xml的字符串,服务器就用file_get_contents('php://input') 去读取xml格式 然后转成数组即可

php调用xml接口

$url='';

$str=file_get_contents($url);

$obj=simplexml_load_string($str);

var_dump($obj);//这里的$obj就是一个类 调用的时候 $obj-类的名称就可以

如何通过PHP生成和获取XML格式数据

1自己拼,XML编码

?php

header('Content-type:text/xml');

echo "?xml version='1.0' encoding='utf-8'";

echo "book";

echo "PHP";

echo "namePHP程序开发范例宝典/name";

echo "price 单位='元/本'89.00/price";

echo "date2007-09-01/date";

echo "/PHP";

echo "/book";

?

拼接的效果

2从数据库中查询再拼XML编码

?php

$dsn="mysql:host=localhost;dbname=test";

try {

$pdo = new PDO($dsn,'root','passwowd'); //初始化一个PDO对象,就是创建了数据库连接对象$pdo

$query="select * from book";   //定义SQL语句

$pdo-query('set names utf8');

$result=$pdo-prepare($query); //准备查询语句

$result-execute();       //执行查询语句,并返回结果集

$arr='';

while($res=$result-fetch()){

$arr.='PHPid'.$res[0].'/idname'.$res[1].'/namedate'.$res[2].'/date'.'price'.$res[3].'/price/PHP';

}

echo "?xml version='1.0' encoding='utf-8'?book".$arr.'/book';

} catch (PDOException $e) {

die ("Error!: ".$e-getMessage()."br");

}

?

拼接的效果

3使用ajax获取,DOM解析

!DOCTYPE html

html lang="en"

head

meta charset="UTF-8"

titlexml/title

/head

body

script

function check(){

var xhr=new XMLHttpRequest();

xhr.open('GET','xml.php');

xhr.onreadystatechange=function(){

if(xhr.readyState==4 xhr.status==200){

console.log(xhr.responseText);

//初始化 DOM解析对象

var domParser = new DOMParser();

//字符串解码为对象

var xmlDoc = domParser.parseFromString(xhr.responseText,'text/xml');

//按标签名获取元素 返回数组

var elements = xmlDoc.getElementsByTagName('PHP');

//拼接html格式字符串

var str ='trthid/ththname/ththdate/ththprice/th/tr';

for (var i=0;ielements.length;i++){

var id=elements[i].getElementsByTagName('id')[0].firstChild.nodeValue;

var name=elements[i].getElementsByTagName('name')[0].firstChild.nodeValue;

var date=elements[i].getElementsByTagName('date')[0].firstChild.nodeValue;

var price=elements[i].getElementsByTagName('price')[0].firstChild.nodeValue;

str+= 'trtd'+id+'/tdtd'+name+'/tdtd'+date+'/tdtd'+price+'/td/tr';

}

document.getElementById('table2').innerHTML=str;

}

};

xhr.send(null);

}

/script

button onclick="check();"点我/button

table id="table2" border="2" cellspacing="0"

/table

/body

/html

效果

1

2

补充:

使用JSON

1数据库查询,自己拼 JSON 编码

?php

$dsn="mysql:host=localhost;dbname=test";

try {

$pdo = new PDO($dsn,'root','password'); //初始化一个PDO对象,就是创建了数据库连接对象$pdo

$query="select * from book";   //定义SQL语句

$pdo-query('set names utf8');

$result=$pdo-prepare($query); //准备查询语句

$result-execute();       //执行查询语句,并返回结果集

$a=$arr='';

while($res=$result-fetch()){

$arr.='{"id":'.'"'.$res[0].'",'.'"name":'.'"'.$res[1].'",'.'"time":'.'"'.$res[2].'",'.'"jia":'.'"'.$res[3].'",'.'"zhe":'.'"'.$res[4].'",'.'"chu":'.'"'.$res[5].'"},';

}

echo $a="[".substr($arr,0,strlen($arr)-1)."]";

} catch (PDOException $e) {

die ("Error!: ".$e-getMessage()."br");

}

?

2数据库查询,函数 JSON 编码

?php

$dsn="mysql:host=localhost;dbname=test";

try {

$pdo = new PDO($dsn,'root','password'); //初始化一个PDO对象,就是创建了数据库连接对象$pdo

$query="select * from book";   //定义SQL语句

$pdo-query('set names utf8');

$result=$pdo-prepare($query); //准备查询语句

$result-execute();       //执行查询语句,并返回结果集

$res=$result-fetchAll();

//JSON 编码

echo json_encode($res);

} catch (PDOException $e) {

die ("Error!: ".$e-getMessage()."br/");

}

?

效果

3ajax获取,JSON解析

!DOCTYPE html

html lang="en"

head

meta charset="UTF-8"

titleJSON/title

/head

body

script

function check() {

var XHR = new XMLHttpRequest();

XHR.open('GET','JSON.php');

XHR.onreadystatechange = function (){

if(XHR.readyState == 4 XHR.status ==200){

var books =JSON .parse(XHR.responseText);

var books2='trthid/ththbookname/ththtime/ththprice/ththmarker/ththpublisher/th/tr'

for (var i=0;ibooks.length;i++){

books2+= 'trtd'+(books[i ].id)+'/tdtd'+(books[i ].name)+'/tdtd'+(books[i ].time)+'/tdtd'+(books[i ].jia)+'/tdtd'+(books[i ].zhe)+'/tdtd'+(books[i ].chu)+'/td/tr';

}

document.getElementById('table2').innerHTML=books2;

}

};

XHR.send(null);

}

/script

input type="button" value="点我" onclick="check();"

table id="table2" border="2" cellspacing="0"/table

/body

/html

PHP 读取和编写 XML

什么是

XML?

XML

是一种数据存储格式。它没有定义保存什么数据,也没有定义数据的格式。XML

只是定义了标记和这些标记的属性。格式良好的

XML

标记看起来像这样:

复制代码

代码如下:

nameJack

Herrington/name

DOM读取

XML

复制代码

代码如下:

?php

$doc

=

new

DOMDocument();

$doc-load(

'books.xml'

);

$books

=

$doc-getElementsByTagName(

"book"

);

foreach(

$books

as

$book

)

{

$authors

=

$book-getElementsByTagName(

"author"

);

$author

=

$authors-item(0)-nodeValue;

$publishers

=

$book-getElementsByTagName(

"publisher"

);

$publisher

=

$publishers-item(0)-nodeValue;

$titles

=

$book-getElementsByTagName(

"title"

);

$title

=

$titles-item(0)-nodeValue;

echo

"$title

-

$author

-

$publisher\n";

}

?

DOM

编写

XML

复制代码

代码如下:

?php

$books

=

array();

$books

[]

=

array(

'title'

=

'PHP

Hacks',

'author'

=

'Jack

Herrington',

);

$doc

=

new

DOMDocument();

//创建dom对象

$doc-formatOutput

=

true;

$r

=

$doc-createElement(

"books"

);//创建标签

$doc-appendChild(

$r

);

//将$r标签,加入到xml格式中。

foreach(

$books

as

$book

)

{

$b

=

$doc-createElement(

"book"

);

//创建标签

$author

=

$doc-createElement(

"author"

);

$author-appendChild($doc-createTextNode(

$book['author']

));

//给标签添加内容

$b-appendChild(

$author

);

//将子标签

加入父标签

$r-appendChild(

$b

);

//加入父标签中!

}

echo

$doc-saveXML();

?

以上就是这2段读取和编写XML的DOM代码了,小伙伴们了解了没,有什么疑问可以给我留言


分享标题:php写xml接口数据 接口返回xml格式的数据
文章源于:http://shouzuofang.com/article/hpcihi.html

其他资讯