下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

用PHP5的SimpleXML解析XML文档总结

作者:课课家教育     来源: http://www.kokojia.com/点击数:985发布时间: 2015-11-26 16:42:06

标签: PHP教程PHP基础入门PHP实例教程

大神带你学编程,欢迎选课

今天由小编为大家讲解有关语言编程的文章,在课课家共同了解语言编程其中不被重视的技巧相信对大家一定有很大的帮助

以下为引用的内容php实例教程
messages.xml
========================================================



     System Down for Maintenance
    Going down for maintenance soon!
    
   Joe SystemGod
   systemgod@someserver.com

    
    March 4, 2004
   10

========================================================


xml 是一种创建元数据的语言,元数据是描述其它数据的数据,中的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_

What's For Dinner
http://menu.example.com/
These are your choices of what to eat tonight.

_XML_;
$xml = simplexml_load_string($channel);
===================================================
 
rss.xml
=============================================



 What's For Dinner
 http://menu.example.com/
 These are your choices of what to eat tonight.
 
 Braised Sea Cucumber
  http://menu.example.com/dishes.php?dish=cuke
  Gentle flavors of the sea that nourish and refresh you.
 
 
 Baked Giblets with Salt
  http://menu.example.com/dishes.php?dish=giblets
  Rich giblet flavor infused with salt and spice.
 
 
 Abalone with Marrow and Duck Feet
  http://menu.example.com/dishes.php?dish=abalone
  There's no mistaking the special pleasure of abalone.
 


=====================================================

well"IOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,php教程这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。 教育资源可能会影响结果。例如Python是常用的学校和学习编程途径,成千上万的学生问问题和完成项目。不过根据我的经验来说,Python的工作相比PHP和Ruby来说是罕见的。Java也有类似的情况,因为它在教育、网络、桌面和移动发展上有各种各样的用途,所以它们的排名会相对靠前。
本地开发者的需求仍然很高,尤其是在相关工作的调查中可以看出。RedMonk报告Swift在不到六个月的时间里上升了46个排名达到第22位。然而应用开发是一门年轻的学科。目前有更多的Web和桌面编程职位空缺着。 "

"我从事编程语言统计很多年了,有大量的数据来源包括代码存储库、Q&A讨论、招聘广告、社交媒体情况、教程页面访问、学习视频视图、开发者调查等等。数据发表在不同的时间,都可以被认为是精确的,
也可以被认为是有缺陷的,但是它们可以用于发现行业趋势。最后,不要期望一夜之间就变成一个编码忍者。有些人有一种天然的能力,但也是花了很多很多时间来磨练他们的技能,不断的学习新的技术和技巧。"
在过去三年中 XML 经历了许多反复,所以目前存在不同版本的 Microsoft XML 分析器也不奇怪。Internet Explorer 4.0 包含早期版本的 XML 分析器,它比 XSL、XML 数据或者大多数其他的 XML 技术(并且有完全不同的 DOM 模型)要早。该早期版本的分析器包含在 MSXML.dll 库中。从 MSDN XML 开发人员中心(英文)可将分析器升级到较新的一种。
  我们极力建议您升级到新的分析器,因为它要强大得多。Internet Explorer 5.0 包括 MSXML 2.0 分析器,它包含 XSL 和 XML 架构的基本版本。MSXML2 是 SQL Server 2000 附带的分析器版本。MSXML2 包含了许多性能增强的功能,并且在总体上提高了性能和可伸缩性。MSXML3 是当前作为“技术预览”附带的版本。MSXML3 包括 XSLT 和 XPath 支持以及 SAX 接口。

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();
这将输出文本

以下为引用的内容:

Braised Sea Cucumber
http://menu.example.com/dishes.php?dish=cuke
Gentle flavors of the sea that nourish and refresh you.


带文件名参数的asXML将会把原本输出的内容保存为一个文件
$xml->channel->item[0]->asXML("item[0].xml");
完整的代码:

以下为引用的内容:
rss.xml
=====



 What's For Dinner
 http://menu.example.com/
 These are your choices of what to eat tonight.
 
 Braised Sea Cucumber
  http://menu.example.com/dishes.php?dish=cuke
  Gentle flavors of the sea that nourish and refresh you.
 
 
 Baked Giblets with Salt
  http://menu.example.com/dishes.php?dish=giblets
  Rich giblet flavor infused with salt and spice.
 
 
 Abalone with Marrow and Duck Feet
  http://menu.example.com/dishes.php?dish=abalone
  There's no mistaking the special pleasure of abalone.
 
php视频教程

rss.php
======
$xml = simplexml_load_file("rss.xml");
echo "

".$xml->channel->title."


";
echo "
      ";

      echo "
    • Title:".$xml->channel->item[0]->title."
    • ";

      echo "
    • Title:".$xml->channel->item[1]->title."
    • ";

      echo "
    • Title:".$xml->channel->item[2]->title."
    • ";

    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() 函数编码后再输出,否这可能出现问题

看完小编的文章是不是很精彩,是不是想要成为编程语言的高手,更多关于在线教育的文章尽在课课家,希望你们多多关注。

赞(119)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程