PHP& XML

XML是一种看起来很像HTML的标记语言. XML文档是纯文本,包含由<分隔的标签.和>.XML和HTML之间有两个很大的区别 :

  • XML没有定义一组特定的标签你必须使用.

  • XML对文档结构非常挑剔.

XML为您提供比HTML更多的自由. HTML具有一组标记:< a></a>标签围绕链接,< p>开始段落等等.但是,XML文档可以使用您想要的任何标记.放< rating></rating>电影评级周围的标签,< height></height>某人身高的标签.因此,XML为您提供了设置自己的标签的选项.

XML在文档结构方面非常严格. HTML允许您使用一些开始和结束标记快速和松散地播放.但这不是XML的情况.

HTML列表无效XML

<ul>
   <li>Braised Sea Cucumber
   <li>Baked Giblets with Salt
   <li>Abalone with Marrow and Duck Feet
</ul>

这不是有效的XML文档,因为没有结束</li>与三个开头< li>匹配的标签标签.必须关闭XML文档中的每个打开的标记.

有效XML的HTML列表

<ul>
   <li>Braised Sea Cucumber</li>
   <li>Baked Giblets with Salt</li>
   <li>Abalone with Marrow and Duck Feet</li>
</ul>

解析XML文档

PHP 5的新 SimpleXML 模块解析XML文档,好吧,简单.它将XML文档转换为提供对XML的结构化访问的对象.

要从存储在字符串中的XML文档创建SimpleXML对象,请将字符串传递给 simplexml_load_string( ).它返回一个SimpleXML对象.

示例

尝试以下示例 :

<html>
   <body>
      
      <?php
         $note=<<<XML
         
         <note>
            <to>Gopal K Verma</to>
            <from>Sairamkrishna</from>
            <heading>Project submission</heading>
            <body>Please see clearly </body>
         </note>
         
         XML;
         $xml=simplexml_load_string($note);
         print_r($xml);
      ?>
		
   </body>
</html>

它将产生以下结果 :

解析XML

注意 : 如果文件中包含XML内容,则可以使用函数 simplexml_load_file(filename).

有关XML解析函数的完整详细信息,请检查PHP函数参考.

生成XML文档

SimpleXML适用于解析现有的XML文档,但不能用它来从头开始创建新文档.

生成XML文档的最简单方法是构建一个PHP数组,其结构与XML文档,然后遍历数组,使用适当的格式打印每个元素.

示例

尝试以下示例 :

<?php
   $channel = array('title' => "What's For Dinner",
      'link' => 'http://menu.example.com/',
      'description' => 'Choose what to eat tonight.');
   
   print "<channel>\n";
   
   foreach ($channel as $element => $content) {
      print " <$element>";
      print htmlentities($content);
      print "</$element>\n";
   }
   
   print "</channel>";
?>

它将产生以下结果 :

http://menu.example.com/ Choose what to eat tonight.