Menu Close

PHP & XML介绍,PHP XML操作方法解析

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 文档中的每个打开标签都必须关闭标签相匹配。

HTML 列表是有效的 XML

<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 对象将其存储在一个字符串中,然后将字符串传递给 smplexml_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>

它将会产生以下结果:

Parsing XML

注意: 如果你有一个 XML 内容文件您可以使用函数 simplexml_load_file(filename)。

为了更详细的了解 XML 解析函数请察看 PHP 函数。

XML 文档的生成

SimpleXML 解析现有 XML 文档非常快,但你不能用它来创建一个新的 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.
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in PHP教程

Related Posts