php专区

 首页 > php专区 > PHP应用 > 常用功能 > php中DOMDocument与SimpleXML创建与解析xml程序 - php高级

php中DOMDocument与SimpleXML创建与解析xml程序 - php高级

分享到:
【字体:
导读:
          通过DOM扩展创建一个DOMDocument对象,通过DOMDocument对象的方法向文档添加元素,最后通过save()或saveXML()方法来生成文档,也可以通过SimpleXML来快速解析xml文档.例子:DOM XML 解析器函数是 PH......

php中DOMDocument与SimpleXML创建与解析xml程序

通过DOM扩展创建一个DOMDocument对象,通过DOMDocument对象的方法向文档添加元素,最后通过save()或saveXML()方法来生成文档,也可以通过SimpleXML来快速解析xml文档.

例子:DOM XML 解析器函数是 PHP 核心的组成部分,无需安装就可以使用这些函数.

XML文件,将在我们的例子中使用下面的 XML 文件,代码如下:

  1. xml version="1.0" encoding="ISO-8859-1"?> 
  2. <note> 
  3. <to>Georgeto> 
  4. <from>Johnfrom> 
  5. <heading>Reminderheading> 
  6. <body>Don't forget the meeting!body> 
  7. note> 

加载和输出 XML,我们需要初始化 XML 解析器,加载 XML,并把它输出,例子代码如下:

  1. $xmlDoc = new DOMDocument(); 
  2. $xmlDoc->load("note.xml"); 
  3.  
  4. print $xmlDoc->saveXML(); 
  5. ?> 
  6.  
  7. //以上代码的输出: 
  8. //George John Reminder Don't forget the meeting 

假如您在浏览器窗口中查看源代码,会看到下面这些 HTML,代码如下:

  1. xml version="1.0" encoding="ISO-8859-1"?> 
  2. <note> 
  3. <to>Georgeto> 
  4. <from>Johnfrom> 
  5. <heading>Reminderheading> 
  6. <body>Don't forget the meeting!body> 
  7. note> 

上面的例子创建了一个 DOMDocument-Object,并把 "note.xml" 中的 XML 载入这个文档对象中.

saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它.例子代码如下:

  1. //创建一个新文档 
  2. $dom = new DOMDocument('1.0'); 
  3.  
  4. //创建根元素book,并将其添加到文档中 
  5. $book = $dom->appendChild($dom->createElement('book')); 
  6.  
  7. //创建一个title元素,并将其添加到$book中 
  8. $title = $book->appendChild($dom->createElement('title')); 
  9. $title->appendChild($dom->createTextNode('Php Book')); 
  10. //为title元素的添加属性cover,属性值soft 
  11. $title->setAttribute('cover','soft'); 
  12.  
  13. //创建author元素,并将其添加到$book中 
  14. $kaifabu = $book->appendChild($dom->createElement('author')); 
  15. //为author元素添加文本 
  16. $kaifabu->appendChild($dom->createTextNode('kaifabu')); 
  17.  
  18. //创建author元素,并将其添加到$book中 
  19. $kaifabu = $book->appendChild($dom->createElement('author')); 
  20. //为author元素添加文本 
  21. $kaifabu->appendChild($dom->createTextNode('Younker')); 
  22.  
  23. //将格式化的DOM文档输出为XML 
  24. $dom->formatOutput = true; 
  25.  
  26. //生成books.xml文件 
  27. $dom->save('books.xml'); 
  28. //此步把生成的XML以字符串形式显示 
  29. echo htmlentities($dom->saveXML()); 
  30. ?> 
  31.  
  32. //输出结果如下: 
  33. //开源代码phpfensi.com 
  34. "1.0" ?> 
  35.  
  36.   "soft">Php Book 
  37.   kaifabu 
  38.   Younker 
  39.  

注:如果上面生成XML这步改成$dom->save(‘books.xml’);直接生成一个books.xml文件.

下面我们利用simplexml来解析xml文件

SimpleXML 函数允许您把 XML 转换为对象,通过普通的属性选择器或数组迭代器,可以处理这个对象,就像处理任何其他对象一样.

其中的一些函数需要最新的 PHP 版本。

安装:SimpleXML 函数是 PHP 核心的组成部分,无需安装即可使用这些函数,代码如下:

  1. //使用SimpleXML扩展解析XML文档,解析出来是一个对象,可以通过对象获取它的元素内容 
  2. $sx = simplexml_load_file('books.xml'); 
  3. //获取title标签的内容 
  4. $title = $sx->title; 
  5. //因为有两个author元素,通过循环获取每个author元素内容 
  6. $authors = ''
  7. foreach($sx->author as $author
  8.  $authors .= '&' . $author
  9. $authors = substr($authors, 1); 
  10. echo $title . ':' . $authors
  11. ?>  
  12. //输出结果如下: 
  13. //Php Book:kaifabu&Younker 

PHP:指示支持该函数的最早的 PHP 版本.

SimpleXML函数

__construct() 创建一个新的 SimpleXMLElement 对象。 5 

addAttribute() 给 SimpleXML 元素添加一个属性。 5 

addChild() 给 SimpleXML 元素添加一个子元素。 5 

asXML() 从 SimpleXML 元素获取 XML 字符串。 5 

attributes() 获取 SimpleXML 元素的属性。 5 

children() 获取指定节点的子。 5 

getDocNamespaces() 获取 XML 文档的命名空间。 5 

getName() 获取 SimpleXML 元素的名称。 5 

getNamespaces() 从 XML 数据获取命名空间。 5 

registerXPathNamespace() 为下一次 XPath 查询创建命名空间语境。 5 

simplexml_import_dom() 从 DOM 节点获取 SimpleXMLElement 对象。 5 

simplexml_load_file() 从 XML 文档获取 SimpleXMLElement 对象。 5 

simplexml_load_string() 从 XML 字符串获取 SimpleXMLElement 对象。 5 

分享到:
PHP生成XML格式数据与解析xml数据 - php...
PHP生成XML格式数据与解析xml数据 本文章来详细的介绍一下关于PHP生成XML格式数据与解析xml数据程序代码,有需要学习的朋友可参考参考,先看xml文档,代码如下:                   title1          content1          2009-10-11      ...
PHP网站安装实现程序 - php高级应用
PHP网站安装实现程序 网站安装过程我们需要几处非常简单,一个是我们要让用户输入用户名密码然后连接数据库之后再把我们以前准备好.sql文件利用php读取并执行,最后简单配置一下站点,这样一个完整的php网站安装过程就完美的搞定了. 这次顺便做了一个install.php才发现难度其实并不大.还是文件...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……