messages.xml ======================================================== ======================================================== xml 是一种创建元数据的语言,元数据是描述其它数据的数据,PHP中的XML处理是基于LIBXML2的,安装时默认开启。 可以通过phpinfo()函数查看是否开启了XML处理模块,DOM,LIBXML,SAMPLEXML。 首先,通过samplexml_load_file函数把xml文件加载到一个对象中,samplexml_load_file可以用户远程文件. 例如: $xml = samplexml_load_file("messages.xml"); // 本地文件系统,当前目录 $xml = samplexml_load_file("http://www.xml.org.cn/messages.xml"); // 远程web服务器 用 var_dump($xml) 和 print_r($xml) 分别输出其结构.var_dump给出了变量的类型和长度,而print_r可读性更强 输出对象中的所有元素名称和它的值. echo $xml->MessageTitle; //输出消息的标题 echo $xml->MessageBody; // 输出消息体 echo $xml->MessageAuthor; //消息的作者 echo $xml->MessageDate; // 消息产生的日期 echo $xml->MessageNumber; // 消息代码 =================================================== 另外,还有一个函数,可以把XML字符串加载到一个simplexml对象中取 $channel =<<<_XML_ http://menu.example.com/ _XML_; $xml = simplexml_load_string($channel); =================================================== rss.xml ============================================= http://menu.example.com/ http://menu.example.com/dishes.php?dish=cuke http://menu.example.com/dishes.php?dish=giblets http://menu.example.com/dishes.php?dish=abalone ===================================================== 1.访问具有相同元素名称的节点 2.通过foreach循环所有相同元素名称的子节点 foreach($xml->channel->item as $key=>$value) { print "Title: " . $item->title . "\n"; } 3.输出整个文档 echo $xml->asXML(); 4.把节点作为字符串输出 echo $xml->channel->item[0]->asXML(); 这将输出文本 http://menu.example.com/dishes.php?dish=cuke 带文件名参数的asXML将会把原本输出的内容保存为一个文件 $xml->channel->item[0]->asXML("item[0].xml"); 完整的代码: rss.xml ===== http://menu.example.com/ http://menu.example.com/dishes.php?dish=cuke http://menu.example.com/dishes.php?dish=giblets http://menu.example.com/dishes.php?dish=abalone rss.php ====== $xml = simplexml_load_file("rss.xml"); echo " ".$xml->channel->title.""; echo "
echo " echo " echo " echo " print "Title: " . $xml->channel->item[0]->title . "\n "; print "Title: " . $xml->channel->item[1]->title . "\n "; print "Title: " . $xml->channel->item[2]->title . "\n "; echo " "; foreach ($xml->channel->item[0] as $element_name => $content) { print "The $element_name is $content\n "; } echo " "; print_r($xml); echo $xml->channel->item[0]->asXML(); ?> 任何XML文本在输出前最好用 htmlentiteis() 函数编码后再输出,否这可能出现问题 |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 05:34 , Processed in 0.239831 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.