XML 是各种应用程序之间进行数据传输的最常用的工具。
应用场景:
1)充当程序间交互的中间件(通讯标准)
快递100接口(Java)XMLPHP
2)配置文件
3)小型数据库
php+MySQL 金山词霸
php+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">
函数参考 -- 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.' ); }//在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;