SimpleXML提供了一套简单快速的XML操作方法,大大地提高了XML操作的效率。

  但是有时不小心也会带来不小的麻烦,看下面一段代码:

  $xml=simplexml_load_string('<root><title>title</title></root>');

  $title=$xml->title;

  echo$title;

  $xml->title='test';

  echo$title;

  猜猜第二个输出结果会是多少?是'test',而不是想像中的'title'。为什么会这样呢?原因在这里:

  echo gettype($xml->title)//object

  echo get_class($xml->title);//SimpleXMLElement

  看到了吗,$xml->title是一个SimpleXMLElement类的实例,而不是字符串。

  SimpleXMLElement应该是实现了一个类似于__tostring()的接口(有兴趣的可以去看一下PHP的源码,在"ext/simplexml/"中),才能在echo等表达式中表现类似于一个字符串。所以还有个地方需要注意:

  $_SESSION['test']=$xml->title;//保存一个SimpleXMLElement变量到SESSION中。

  $_SESSION['test']=(string)$xml->title;//字符串

  $_SESSION['test']=strval($xml->title);//这样也行。

  所以$title实际上保存的是一个到SimpleXMLElement类的一个引用,而不是字符串的副本。想要得到字符串的副本只能进行类型转换:

  $title=(string)$xml->title;//获得字符串

  $xml->title='test';

  echo$title;//输出title

使用SimpleXML应该注意的问题有哪些?的更多相关文章

  1. PHP中遍历XML之SimpleXML

    简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...

  2. SimpleXML操控XML

    复杂字符串如下: $_xml=<<<_xml <?xml version="1.0" encoding="utf-8"?> < ...

  3. SimpleXML解析xml文件

    SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式. 与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据. Simp ...

  4. simplexml 使用实例

    搞了几天php处理xml文件,终于有点头绪,记录下来分享一下.simplexml 是php处理xml文件的一个方法,另一个是dom处理,这里只说simplexml.目前php处理xml用的比较多,比较 ...

  5. HP SimpleXML

    PHP SimpleXML PHP SimpleXML 处理最普通的 XML 任务,其余的任务则交由其它扩展处理. 什么是 PHP SimpleXML? SimpleXML 是 PHP 5 中的新特性 ...

  6. PHP SimpleXML

    安装 SimpleXML 扩展需要 PHP 5 支持. 自 PHP 5 起,SimpleXML 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP 5 SimpleXML 函数 函数 ...

  7. SimpleXML 使用详细例子

    要处理XML 文件,有两种传统的处理思路:SAX 和DOM.SAX 基于事件触发机制, 对XML 文件进行一次扫描,完成要进行的处理:DOM 则将整个XML 文件构造为一棵DOM 树,通过对DOM 树 ...

  8. PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门

    XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点.主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]. Xapth主要用来 ...

  9. simplexml 对xml的增删改操作

    simplexml 是php 处理xml 文件的一个方法,另一个是dom 处理,这里只说simplexml .目前php 处理xml 用的比较多,比较成熟的还是dom .但dom 在速度和代码量上还是 ...

随机推荐

  1. DP:Corn Fields(POJ 3254)

    北大教你如何高效养牛(误)(点我查看)  2015-08-21: 问题的大意就是有一片稻田,里面有很多坑,你要在上面种稻谷,然后呢田里面还会养牛,牛不喜欢扎堆吃饭,所以呢你种的稻谷要间隔种在坑里面,所 ...

  2. HDU 1521 排列组合 指数型母函数

    排列组合 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status D ...

  3. HDU1717小数化分数2

    小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  4. Linux UGO

    U=USER G=GROUP O=OTHERS 最前面的’-’,表示文件为普通类型 第一组的‘rw-’,表示文件属主对文件具有读和写权限,但没有执行权限 第二组的’rw-’,表示同组其他用户对文件具有 ...

  5. eclipse静态部署tomcat

  6. Android自定义progressBar

    通过继承系统ProgressBar实现 效果图 实现 HorizontalProgressBarWithNumber 自定义属性 <?xml version="1.0" en ...

  7. C++ 学习的网站

    C++入门教程:  http://see.xidian.edu.cn/cpp/biancheng/cpp/rumen/

  8. Mongoose Schemas中定义日期以及timestamps选项的妙用

    本文转自:http://www.cnblogs.com/jaxu/p/5595451.html 在Node.js中使用MongoDB少不了Mongoose.假设有如下Mongoose Schemas的 ...

  9. OD使用心得

    查看堆栈 从返回前面的竖线 到 竖线结束 也就是到 (从返回 msconfig.0065a318) 全看.这样不会丢失些东西 或者 看堆栈  直接将堆栈框拉大 避免有些东西没有看到

  10. 循环日期的shell

    date="2015-09-23"enddate='2015-11-08'while [[ $date < $enddate ]] do date=`date -d &quo ...