PHP & XML
XML 是一种看起来很像 HTML 的标记语言。XML 文档是纯文本,其中包含由 < 和 > 包围的标签。XML 和 HTML 之间有两个重要的区别−
- XML 不定义必须使用的特定标签。
- XML 对文档结构非常讲究。
XML 比 HTML 给予你更多的自由。HTML 有一些特定的标签:<a></a>
标签用于环绕链接,<p>
用于开始段落等等。然而,XML 文档可以使用任何你想要的标签。在电影评分周围放置 <rating></rating>
标签,在某人身高周围放置 <height></height>
标签。因此,XML 让你可以自定义标签。
XML 对文档结构非常严格。HTML 允许你对某些开启和闭合标签进行自由操作,但 XML 不是这样。
不是有效 XML 的 HTML 列表
<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内容的文件,可以使用函数 simplexml_load_file(filename) 。
要查看XML解析函数的完整详情,请查看PHP函数参考。
生成XML文档
SimpleXML用于解析现有的XML文档,但无法使用它从头开始创建一个新的XML文档。
生成XML文档的最简单方法是构建一个与XML文档结构相对应的PHP数组,然后通过数组迭代,在适当的格式中打印每个元素。
示例
尝试以下示例:
<?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.