好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php定义xml数据 php处理xml数据

很多站长朋友们都不太清楚php定义xml数据,今天小编就来给大家整理php定义xml数据,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 如何通过PHP生成和获取XML格式数据 2、 PHP生成和获取XML格式数据 3、 如何在php文件里写xml 4、 PHP 读取和编写 XML 如何通过PHP生成和获取XML格式数据

1自己拼,XML编码

<?php

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

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

echo "<book>";

echo "<PHP>";

echo "<name>PHP程序开发范例宝典</name>";

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

echo "<date>2007-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.='<PHP><id>'.$res[0].'</id><name>'.$res[1].'</name><date>'.$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">

<title>xml</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 ='<tr><th>id</th><th>name</th><th>date</th><th>price</th></tr>';

for (var i=0;i<elements.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+= '<tr><td>'+id+'</td><td>'+name+'</td><td>'+date+'</td><td>'+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">

<title>JSON</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='<tr><th>id</th><th>bookname</th><th>time</th><th>price</th><th>marker</th><th>publisher</th></tr>'

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

books2+= '<tr><td>'+(books[i ].id)+'</td><td>'+(books[i ].name)+'</td><td>'+(books[i ].time)+'</td><td>'+(books[i ].jia)+'</td><td>'+(books[i ].zhe)+'</td><td>'+(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或者JSON格式传输 本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据

生成XML格式数据

我们假设系统中有一张学生信息表student 需要提供给第三方调用 并有id name sex age分别记录学生的姓名 性别 年龄等信息

CREATE TABLE `student` (

`id` int( ) NOT NULL auto_increment

`name` varchar( ) NOT NULL

`sex` varchar( ) NOT NULL

`age` *** allint( ) NOT NULL default

PRIMARY KEY  (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf ;

首先 建立createXML php文件 先连接数据库 获取数据

include_once ( connect php ) //连接数据库

$sql = select * from student ;

$result = mysql_query($sql) or die( Invalid query: mysql_error())

while ($row = mysql_fetch_array($result)) {

$arr[] = array(

name => $row[ name ]

sex => $row[ sex ]

age => $row[ age ]

)

}

这个时候 数据就保存在$arr中 你可以使用print_r打印下数据测试

接着 建立xml 循环数组 将数据写入到xml对应的节点中

$doc = new DOMDocument( utf )   // 声明版本和编码

$doc >formatOutput = true;

$r = $doc >createElement( root )

$doc >appendChild($r)

foreach ($arr as $dat) {

$b = $doc >createElement( data )

$name = $doc >createElement( name )

$name >appendChild($doc >createTextNode($dat[ name ]))

$b >appendChild($name)

$sex = $doc >createElement( sex )

$sex >appendChild($doc >createTextNode($dat[ sex ]))

$b >appendChild($sex)

$age = $doc >createElement( age )

$age >appendChild($doc >createTextNode($dat[ age ]))

$b >appendChild($age)

$r >appendChild($b)

}

echo $doc >saveXML()

我们调用了PHP内置的类DOMDocument来处理与生成xml 最终生成的xml格式请点击这里看效果

<?xml version= encoding= utf ?>

<root>

<data>

<name>李王皓</name>

<sex>男</sex>

<age> </age>

</data>

…

</root>

获取XML格式数据

现在我们假设要从第三方获取学生信息 数据格式是XML 我们需要使用PHP解析XML 然后将解析后的数据显示或者写入本地数据库 而这里关键的一步是解析XML

PHP有很多中方法可以解析XML 其中PHP提供了内置的XMLReader类可以循序地浏览过xml档案的节点 你可以想像成游标走过整份文件的节点 并抓取需要的内容 使用XMLReader是高效的 尤其是读取非常大的xml数据 相对其他方法 使用XMLReader消耗内存非常少

header( Content type:text/; Charset=utf )

$url = // helloweba /demo/importXML/createXML php ;

$reader = new XMLReader()   //实例化XMLReader

$reader >open($url) //获取xml

$i= ;

while ($reader >read()) {

if ($reader >nodeType == XMLReader::TEXT) { //判断node类型

$m = $i% ;

if($m== )

$name = $reader >value;  //读取node值

if($m== )

$sex = $reader >value;

if($m== ){

$age = $reader >value;

$arr[] = array(

name => $name

sex => $sex

age => $age

)

}

$i++;

}

}

//print_r($arr)

lishixinzhi/Article/program/PHP/201311/21636

如何在php文件里写xml

php文件里写xml方法:

1、Xml代码

<?xml version="1.0" encoding="utf-8"?>

<article>

    <item>

        <title size="1">title1</title>

        <content>content1</content>

        <pubdate>2009-10-11</pubdate>

    </item>

    <item>

        <title size="1">title2</title>

        <content>content2</content>

        <pubdate>2009-11-11</pubdate>

    </item>

</article>

2、【直接生成字符串】 

使用纯粹的PHP代码生成字符串,并把这个字符串写入一个以XML为后缀的文件。

<?PHP

$data_array = array(

    array(

    'title' => 'title1',

    'content' => 'content1',

        'pubdate' => '2009-10-11',

    ),

    array(

    'title' => 'title2',

    'content' => 'content2',

    'pubdate' => '2009-11-11',

    )

);

$title_size = 1;

$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";

$xml .= "<article>\n";

foreach ($data_array as $data) {

$xml .= create_item($data['title'], $title_size, $data['content'], $data['pubdate']);

}

$xml .= "</article>\n";

echo $xml;

//  创建XML单项

function create_item($title_data, $title_size, $content_data, $pubdate_data)

{

    $item = "<item>\n";

    $item .= "<title size=\"" . $title_size . "\">" . $title_data . "</title>\n";

    $item .= "<content>" . $content_data . "</content>\n";

    $item .= " <pubdate>" . $pubdate_data . "</pubdate>\n";

    $item .= "</item>\n";

    return $item;

}

?>

3、:【DomDocument】 

使用DomDocument生成XML文件,创建节点使用createElement方法,创建文本内容使用createTextNode方法,添加子节点使用appendChild方法,创建属性使用createAttribute方法

<?php

$data_array = array(

    array(

    'title' => 'title1',

    'content' => 'content1',

        'pubdate' => '2009-10-11',

    ),

    array(

    'title' => 'title2',

    'content' => 'content2',

    'pubdate' => '2009-11-11',

    )

);

//  属性数组

$attribute_array = array(

    'title' => array(

    'size' => 1

    )

);

//  创建一个XML文档并设置XML版本和编码。。

$dom=new DomDocument('1.0', 'utf-8');

//  创建根节点

$article = $dom->createElement('article');

$dom->appendchild($article);

foreach ($data_array as $data) {

    $item = $dom->createElement('item');

    $article->appendchild($item);

    create_item($dom, $item, $data, $attribute_array);

}

echo $dom->saveXML();

function create_item($dom, $item, $data, $attribute) {

    if (is_array($data)) {

        foreach ($data as $key => $val) {

            //  创建元素

            $$key = $dom->createElement($key);

            $item->appendchild($$key);

            //  创建元素值

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

            $$key->appendchild($text);

            if (isset($attribute[$key])) {

            //  如果此字段存在相关属性需要设置

                foreach ($attribute[$key] as $akey => $row) {

                    //  创建属性节点

                    $$akey = $dom->createAttribute($akey);

                    $$key->appendchild($$akey);

                    // 创建属性值节点

                    $aval = $dom->createTextNode($row);

                    $$akey->appendChild($aval);

                }

            }   //  end if

        }

    }   //  end if

}   //  end function

?>

4、:【XMLWriter】 

使用XMLWriter类创建XML文件,此方法在PHP 5.1.2后有效。

另外,它可以输出多种编码的XML,但是输入只能是utf-8

<?php

$data_array = array(

    array(

    'title' => 'title1',

    'content' => 'content1',

        'pubdate' => '2009-10-11',

    ),

    array(

    'title' => 'title2',

    'content' => 'content2',

    'pubdate' => '2009-11-11',

    )

);

//  属性数组

$attribute_array = array(

    'title' => array(

    'size' => 1

    )

);

$xml = new XMLWriter();

$xml->openUri("php://output");

//  输出方式,也可以设置为某个xml文件地址,直接输出成文件

$xml->setIndentString('  ');

$xml->setIndent(true);

$xml->startDocument('1.0', 'utf-8');

//  开始创建文件

//  根结点

$xml->startElement('article');

foreach ($data_array as $data) {

    $xml->startElement('item');

    if (is_array($data)) {

        foreach ($data as $key => $row) {

          $xml->startElement($key);

          if (isset($attribute_array[$key])  is_array($attribute_array[$key]))

          {

              foreach ($attribute_array[$key] as $akey => $aval) {

              //  设置属性值

                    $xml->writeAttribute($akey, $aval);

                }

            }

            $xml->text($row);   //  设置内容

            $xml->endElement(); // $key

        }

    }

    $xml->endElement(); //  item

}

$xml->endElement(); //  article

$xml->endDocument();

$xml->flush();

?>

5、: 【SimpleXML】 

使用SimpleXML创建XML文档

<?php

$data_array = array(

    array(

    'title' => 'title1',

    'content' => 'content1',

        'pubdate' => '2009-10-11',

    ),

    array(

    'title' => 'title2',

    'content' => 'content2',

    'pubdate' => '2009-11-11',

    )

);

//  属性数组

$attribute_array = array(

    'title' => array(

    'size' => 1

    )

);

$string = <<<XML

<?xml version='1.0' encoding='utf-8'?>

<article>

</article>

XML;

$xml = simplexml_load_string($string);

foreach ($data_array as $data) {

    $item = $xml->addChild('item');

    if (is_array($data)) {

        foreach ($data as $key => $row) {

          $node = $item->addChild($key, $row);

          if (isset($attribute_array[$key])  is_array($attribute_array[$key]))

            {

              foreach ($attribute_array[$key] as $akey => $aval) {

             //  设置属性值

                  $node->addAttribute($akey, $aval);

            }

          }

        }

    }

}

echo $xml->asXML();

?>

PHP 读取和编写 XML

什么是

XML?

XML

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

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

XML

标记看起来像这样:

复制代码

代码如下:

<name>Jack

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数据的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php定义xml数据 php处理xml数据的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167766
更新时间:2023-03-31   阅读:30次

上一篇: 国外php接口api开源 php api接口开发

下一篇:phppost上传图片 php上传图片大小限制

相关资讯

最新资料更新

  • 1.dedecms后台模块管理空白不显示的解决方法
  • 2.dedecms 模板调用解析最简代码
  • 3.dedecms自定义模型提示:Call to a member function GetInnerT
  • 4.织梦dedecms登录管理后台总是验证码错误的解决方案
  • 5.dede:channel标签支持调用子栏目描述description及关键词keywords的办法
  • 6.dedecms会员注册成功后直接跳转到验证的邮箱地址
  • 7.dedecms list增加noflag属性的方法 实现让列表标签不调用有推荐属性的文章
  • 8.Dedecms文章标题及文章摘要长度修改的方法
  • 9.织梦dedecms页面获取会员状态的方法
  • 10.dedecms重新定义cn_substr函数截取字数更准确
  • 11.Dedecms去掉URL中a目录的方法
  • 12.dedecms搜索页面不能使用arclist等标签的解决方法
  • 13.织梦网站后台底部被挂黑链的解决方法详细解析
  • 14.织梦dedecms修改任意管理员漏洞处理方法
  • 15.织梦dedecms中自定义表单必填项的设置方法
  • 16.dedecms实现调用所有顶级栏目下最新文章的方法
  • 17.DEDE集成百度搜索谷歌搜索站内全站搜索站内按栏目搜索等功能的搜索栏
  • 18.dedecms会员设置、互动设置的方法
  • 19.详解DEDECMS后台会员消费记录人性化时间显示不准的解决方法
  • 20.dedecms结合jQuery实现汇率自动调整

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]