设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> PHP教程 >> PHP中的XML拉模式解析
精品推荐
PHP教程点击TOP10
·PHP入门的学习方法
·PHP 和 MySQL 基础教程(一)
·十天学会php之第一天
·apache+mysql+php+ssl服务器之完全安装攻略
·Windows下PHP5和Apache的安装与配置
·确保PHP安全,不能违反的四条安全规则
·绝对简单易学的PHP入门教程
·浅谈PHP语法(1)
·学习动态网页技术PHP:GD库安装问题详解
·动态网页技术PHP通过参数来生成MYSQL语句类
网络编程点击TOP10
·C#编写的windows计算器-源代码
·ASP.NET 程序中常用的三十三种代码
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·用C#实现木马程序
·VS.net 2005 Beta 下载地址(Express Edition)
·从零开始学ASP.NET(基础篇)
·"SQL Server不存在或访问被拒绝"问题的解决
·C#版的网站新闻发布系统
·.NET 初 级 读 本
·c#操作word表格
精选专题

PHP中的XML拉模式解析

作者: 来源:http://www.xgdown.com/ 时间:2007-10-10 12:57:34

PHP中的XML拉模式解析(3)   echo $reader->name;
  if ($reader->hasValue) {
  echo ": " . $reader->value;
  }
  echo "\n";
  }

  清单 4. 清单 3 的输出

  methodCall
  #text:
  methodName
  #text: sqrt
  methodName
  #text:
  params
  #text:
  param
  #text:
  value
  double
  #text: 10
  double
  value
  #text:
  param
  #text:
  params
  #text:
  methodCall

  大多数程序并非这么简单。它们接受特定格式的输入,并以某种方式来处理输入。在 XML-RPC 例子中,仅需要读取输入中的一个元素:double 元素,该元素应该只有一个。为此,查找名称为 double 的元素的起点:

  if ($reader->name == "double"
  && $reader->nodeType == XMLReader::ELEMENT) {
  // ...
  }

  该元素可能有单个文本子节点,可以通过将解析器前进到下一个节点来进行读取,如下所示:

  if ($reader->name == "double" && $reader->nodeType == XMLReader::ELEMENT) {
  $reader->read();
  respond($reader->value);
  }

  在这里 respond() 函数构建了 XML-RPC 响应并将它发送到客户机。但是,在展示上述操作前,还有一些事情需要处理。不能绝对保证请求文档中的 double 元素仅包含一个文本节点。可能包含多个文本节点,以及注释和处理指令。例如,可能看起来像以下代码:

<value><double>
  <!--value follows-->6.<!--fractional part next-->0
</double></value>

  嵌套元素

  该模式存在一个潜在的缺陷。嵌套的 double 元素(例如 61.2)将违背该算法。然而它将成为无效的 XML-RPC;并且不久您将看到如何使用 RELAX NG 验证来拒绝所有此类文档。在诸如可扩展超文本标记语言(Extensible Hypertext Markup Language,XHTML)之类的文档类型中,允许相同元素互相包含(例如 table 元素包含在另一个 table 元素中),因此您还需要知道元素的深度,从而确保结束标记与开始标记之间进行正确匹配。

  一个健壮的解决方案需要获得 double 元素的所有文本子节点,将它们连接起来,并且仅将结果转换为 double。必须小心避免任何注释或可能出现的其它非文本节点。这有一点复杂,但并不是十分复杂,如清单 5 所示。

  清单 5. 累积来自一个元素的所有文本内容

  while ($reader->read()) {
共7页 9 7 [1] [2] [3] [4] [5] [6] [78 :>

PHP中的XML拉模式解析 相关文章:
PHP中的XML拉模式解析 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com