XMl入门介绍及php操作XML
2016-12-02 14:16
603 查看
一、什么是XML
XML全称:Extensible Markup Language中文名:可扩展标记语言
用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,允许用户对自己的标记语言进行定义的源语言。
用于传输数据与存储数据
[html]
view plain
copy
<?xml version="1.0" encoding="utf-8"?>
<!-- 这是xml-->
<libray>
<book id="1">
<title><三国演义></title>
<author>罗贯中</author>
<price>82</price>
</book>
<book id="2">
<title><水浒传></title>
<author>施耐庵</author>
<price>78</price>
</book>
</libray>
二、XML和html、json的对比
xml与html对比:超级文本标记语言 HyperText Markup Language超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
[html]
view plain
copy
<html>
<head>
<title>html文件</title>
</head>
<body>
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>张玲</td>
<td>20</td>
</tr>
<tr>
<td>李冰</td>
<td>18</td>
</tr>
</table>
</body>
</html>
html不一定成对出现,XML则要求所有的标记必须成对出现;
<br/> <img /> <hr>
HTML标记不区分大小写,XML区分大小写。
xml与json对比:
[html]
view plain
copy
[{"id":1,"title":"\u4e09\u56fd\u6f14\u4e49","author":"\u7f57\u8d2f\u4e2d","price":80},{"id":2,"title":"\u6c34\u6d52\u4f20","author":"\u65bd\u8010\u5eb5","price":78}]
它和json都是一种数据交换格式。
JSON(JavaScript Object Notation)一种轻量级的数据交换格式。数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取。
XML文件庞大,文件格式复杂,传输占带宽。
可以定义更复杂的数据结构,可读性比json数据好。
可读性强
三、XML应用场景
XML 是各种应用程序之间进行数据传输的最常用的工具。应用场景:
1)充当程序间交互的中间件(通讯标准)
快递100接口(Java)XMLPHP
2)配置文件
3)小型数据库
php+MySQL
金山词霸
php+xml 金山词霸
四、XML格式
需要先使用文档声明来声明XML文档最简单的语法:
<?xml version=“1.0” encoding=“utf-8”?>
version 版本为1.0 (代表当前xml文档的版本)
encoding 编码格式 (编码格式utf-8、big5、gb2312)
standalone 是否独立(是否依靠dtd文件) 默认yes
作用:告诉浏览器在解释时所采用的版本与格式等信息
浏览器中输出时指定类型:
<meta name="content-type" content="text/xml">
五、php操作XML
函数参考 -- XML 操作 --SimpleXML
SimpleXML 扩展提供了一个非常简单和易于使用的工具集,能将 XML 转换成一个带有一般属性选择器和数组迭代器的对象。
5.1读取xml:
simplexml_load_file()
attributes () 获取属性
$xml = simplexml_load_file ( 'demo01.xml' );
[html]
view plain
copy
<?xml version="1.0" encoding="utf-8"?>
<!-- 这是xml-->
<libray>
<book id="1" ccc="123">
<title><三国演义></title>
<author>罗贯中</author>
<price>82</price>
</book>
<book id="2" ccc="456">
<title><水浒传></title>
<author>施耐庵</author>
<price>78</price>
</book>
</libray>
[php]
view plain
copy
header('Content-type:text/html;charset=utf8');
if ( file_exists ( 'demo01.xml' )) {
$xml = simplexml_load_file ( 'demo01.xml' );
print_r ( $xml );
echo "<table>";
echo "<tr><td>ID</td><td>书名</td><td>作者</td><td>单价</td></tr>";
foreach($xml->book as $v){
echo "<tr><td>" .$v->attributes()->ccc . "</td>";
echo "<td>" .$v->title . "</td>";
echo "<td>" .$v->author . "</td>";
echo "<td>" .$v->price . "</td>";
echo "</tr>";
}
echo "</table>";
} else {
exit( 'Failed to open test.xml.' );
}
5.2生成xml:
//在XML文档中的所有文本都会被解析器解析,只有在CDATA部件之内的文本会被解析器忽略。比如文本内容中使用“<”这样的特殊字符时,XML使用解析错误。要对"<"进行转义(<)才能正常解析。$xml = new SimpleXMLElement ( $string );
header('content-type:text/xml;charset=utf-8');
[php]
view plain
copy
header('content-type:text/xml;charset=utf-8');
$a1= array("id"=>1,"title"=>"<<三国演义>>","author"=>"罗贯中","price"=>80);
$a2= array("id"=>2,"title"=>"<<水浒传>>","author"=>"施耐庵","price"=>78);
$arr = array($a1,$a2);
//echo json_encode($arr);exit;
$str = "<?xml version='1.0' encoding='utf-8'?><libray>";
foreach($arr as $v){
$str .="
<book id='{$v['id']}'>
<title><span style="color:#FF0000;"><![CDATA[" .$v['title']. "]]></span></title>
<author>{$v['author']}</author>
<price>{$v['price']}</price>
</book>";
}
$str .="</libray>";
echo $str;
相关文章推荐
- php操作xml入门之xml基本介绍及xml标签元素
- php操作xml入门之xml基本介绍及xml标签元素
- XMl入门介绍及php操作XML
- XMl入门介绍及php操作XML
- XMl入门介绍及php操作XML
- php操作xml入门之xml标签的属性分析
- php操作xml入门之xml标签的属性分析
- PHP操作XML作为数据库的类
- Javascript 操作XML简单介绍
- PHP中的类-操作XML(2)
- C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍
- php输出xml的实例(JavaScript操作XML实例)
- 详细介绍Flex中操作XML
- Javascript 操作XML简单介绍
- PHP XML操作的各种方法解析(比较详细)
- PHP操作XML
- php5&Flash as2操作xml
- php操作xml
- PHP通过DOM操作XML
- PHP中的类-操作XML(3)