好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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

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

<? xml   version = "1.0"   encoding = "ISO-8859-1" ?>   < note >   < to > George </ to >   < from > John </ from >   < heading > Reminder </ heading >   < body > Don't forget the meeting! </ body >   </ note >  

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

<?php  $xmlDoc  =  new  DOMDocument();  $xmlDoc ->load( "note.xml" );    print  $xmlDoc ->saveXML();  ?>    //以上代码的输出:   //George John Reminder Don't forget the meeting  

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

<? xml   version = "1.0"   encoding = "ISO-8859-1" ?>   < note >   < to > George </ to >   < from > John </ from >   < heading > Reminder </ heading >   < body > Don't forget the meeting! </ body >   </ note >  

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

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

<?php  //创建一个新文档   $dom  =  new  DOMDocument( '1.0' );    //创建根元素book,并将其添加到文档中   $book  =  $dom ->appendChild( $dom ->createElement( 'book' ));    //创建一个title元素,并将其添加到$book中   $title  =  $book ->appendChild( $dom ->createElement( 'title' ));  $title ->appendChild( $dom ->createTextNode( 'Php Book' ));  //为title元素的添加属性cover,属性值soft   $title ->setAttribute( 'cover' , 'soft' );    //创建author元素,并将其添加到$book中   $kaifabu  =  $book ->appendChild( $dom ->createElement( 'author' ));  //为author元素添加文本   $kaifabu ->appendChild( $dom ->createTextNode( 'kaifabu' ));    //创建author元素,并将其添加到$book中   $kaifabu  =  $book ->appendChild( $dom ->createElement( 'author' ));  //为author元素添加文本   $kaifabu ->appendChild( $dom ->createTextNode( 'Younker' ));    //将格式化的DOM文档输出为XML   $dom ->formatOutput = true;    //生成books.xml文件   $dom ->save( 'books.xml' );  //此步把生成的XML以字符串形式显示   echo  htmlentities( $dom ->saveXML());  ?>    //输出结果如下:   //开源代码phpfensi.com   <?xml version= "1.0"  ?>  <book>    <title cover= "soft" >Php Book</title>    <author>kaifabu</author>    <author>Younker</author>  </book> 

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

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

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

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

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

<?php   //使用SimpleXML扩展解析XML文档,解析出来是一个对象,可以通过对象获取它的元素内容   $sx  = simplexml_load_file( 'books.xml' );  //获取title标签的内容   $title  =  $sx ->title;  //因为有两个author元素,通过循环获取每个author元素内容   $authors  =  '' ;  foreach ( $sx ->author  as   $author )  {    $authors  .=  '&'  .  $author ;  }  $authors  =  substr ( $authors , 1);  echo   $title  .  ':'  .  $authors ;  ?>   //输出结果如下:   //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中DOMDocument与SimpleXML创建与解析xml程序 - php高级的详细内容...

  阅读:34次