中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> PHP编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· 在PHP中开发XML应用...
· 在PHP中开发XML应用...
· 在PHP5中使用DOM控制...
· 在PHP5中使用DOM控制...
· 怎样在PHP中通过ADO...
· 精通数据库系列之入...
· 精通数据库系列之入...
· “在phpMyAdmin使用...
· 在phpMyAdmin使用用...
· 怎样在php中使用PDF...
在PHP中开发XML应用程序之基础篇(3)
作者:不详  来源:不详  发布时间:2006-8-14 11:03:17  发布人:chinazhan

 减小字体 增大字体

     七、 修改XML
  
    尽管文本数据和属性值可以通过使用简单XML加以设置,但是不能新建这些对象。然而,SimpleXM的确提供了一种方法来实现DomElement对象和DomElement对象之间的转换。为此,我修改了addCategory()函数来说明如何使用simplexml_import_dom()函数以添加目录和把该文档转换回简单的XML格式:
  
    PHP:
  
  function addCategory(SimpleXMLElement &$sXML, $catID, $catName) {
   $xml = new DOMDocument;
   $xml->loadXML($sXML->asXML());
   $catName = $xml->createTextNode($catName); //创建一个结点来存放该文本
   $category = $xml->createElement('category'); //创建一个目录元素
   $category->appendChild($catName); //把文本添加到目录元素
   $category->setAttribute('cid', $catID); //设置目录id
   $XMLCategories = $xml->getElementsByTagName('categories')->item(0);
   $XMLCategories->appendChild($category); //添加新目录
   $sXML = simplexml_import_dom($xml);
   return $sXML;
  }
  
    同样,SimpleXMLElement对象的asXML()函数可以用来检索XML字符串并把它保存回一个文件中。
  
    八、 xPath
  
    毫无疑问,Xpath是"XML蛋糕之上的樱桃"。XPath允许你使用象SQL一样的查询来查找一个XML文档中的特定信息。DOM和SimpleXML都有内置的对XPath的支持,如SQL,可以被用来提取你想从一XML文档中提取的任何内容。
  
    · //category-查找所有的在文档中出现的任何category。
  
    · /library/books-查找所有作为library的孩子出现的books
  
    · /library/categories/category[@cid]-查找所有作为library/categories的孩子出现且属性为cid的category。
  
    · /library/categories/category[@att='2']-查找所有作为library/categories的孩子且具有属性cid的值为2出现的category。
  
    · /library/books/book[title='Apache 2']-查找所有作为/library/books的孩子且其标题元素有一个值为Apache 2出现的book。
  
    其实,这仅是xPath冰山之一角。你可以使用xPath来创建大量复杂的查询以便从你的文档中提取几乎任何信息。我再次修改了示例代码来向你展示使用xPath是多么轻松愉快的事情。
  
    PHP:
  
  <?php
  $xml = simplexml_load_file('xml/library.xml');
  ?>
  <html>
  <head>
  <title>XML Library</title>
  </head>
  <body>
  <?php foreach(((array)$xml->xpath("/library/books/book")) as $book):
  /*列表目录*/
  $catList = '';
  foreach($book->category as $category) {
   /*得到具有这个ID的目录*/
   $category = $xml->xpath("/library/categories/category[@cid='$category']");
   $catList .= (string) $category[0] . ', ';
  }
  $catList = substr($catList, 0, -2); ?>
  <div>
  <h2><?php echo($book->title) ?></h2>
  <p><b>Author:</b>: <?php echo($book->author) ?></p>
  <p><b>Categories: </b>: <?php echo($catList) ?></p>
  </div>
  <?php endforeach; ?>
  </html>
  
    九、 DOM和XPath
  
    在DOM中计算XPath查询需要创建一个DOMXPath对象,下面的evaluate()函数返回一个DOMElement数组。
  
  $xPath = new DOMXPath($xml);
  $xPath->evaluate("/library/books/book[title='Apache 2']");
  
    十、 结论
  
    现在,我们学习了如何使用了PHP提供给我们的工具来与XML交互。至此,我们已经被"武装起来"并准备好深入钻研XML应用程序了。在下一篇文章中,我们将讨论AJAX及其如何应用于象Google这样的站点开发的。
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .