临沂百灵网络科技有限公司

什么是XML

点击:发布日期:2023/9/11
XML 是“可扩展性标识语言(eXtensible Markup Language)”的缩写,是一种类似于 HTML的标记性语言。但是与 HTML 不同,XML 主要用于描述数据和存放数据,而 HTML 主要用于显示数据。XML 是一种流行的半结构化文件格式,以一种类似数据库的格式存储数据。在实际应用中,一些简单的、安全性较低的数据往往使用 XML 文件的格式进行存储。这样做的好处很多,一方面可以通过减少与数据库的交互性操作提高读取效率,另一方面可以有效利用 XML 的优越性降低程序的编写难度。
PHP 提供了一整套的读取 XML 文件的方法,很容易地就可以编写基于 XML 的脚本程序。
通过 XML,开发者可以根据自己的需要创建标记的名称。例如,下面的 XML 代码可以
用来描述一条学生信息(info.xml)。

01
lucy
girl

其中标签标记了这是一个学生信息,信息中包括学号、姓名、性别信息。
(1)存储 XML
可以通过创建一个 SimpleXML 对象来临时存储 XML 数据。对 XML 进行的操作都是通过操作 SimpleXML 对象来完成的。可以通过使用 simplexml_load_flie 函数读取一个 XML文件来完成创建,其语法格式如下:
simplexml_load_file(string filename)

(2)标准化 XML 数据SimpleXML 还提供了一种标准化 XML 数据的方法 asXML。asXML 方法可以有效地将SimpleXML 对象中的内容按照 XML 1.0 标准进行重新编排并以字符串的数据类型返回。以下代码实现了对上面 XML 数据的标准化:
$xml = simplexml_load_file('info.xml');
echo $xml->asXML();
?>
程序的运行结果为


01
lucy
girl


(3)动态创建 XML 文件在实际的项目开发中,经常需要动态生成 XML 文件,之前的组件不能提供此种功能,需要使用DOM 组件来进行创建。DOM是文档对象模型 Document Object Model的缩写,DOM组件提供了对 XML 文档的树形解析模式。以下代码使用 DOM 组件创建了一个 XML 文档:
$dom = new DomDocument(); //创建 DOM 文档
$info = $dom->createElement('info'); //在根节点创建 info 标签
$dom->appendChild($info);
$num = $dom->createElement('num'); //在 info 标签下创建 num 子标签
$info->appendChild($num);
$num_value = $dom->createTextNode('100001'); //赋值
$num->appendChild($num_value);
$name = $dom->createElement('name');
$info->appendChild($name);
$name_value = $dom->createTextNode('lucy');
$name->appendChild($name_value);
$sex = $dom->createElement('sex');
$info->appendChild($sex);
$sex_value = $dom->createTextNode('girl');
$sex->appendChild($sex_value);
//输出 XML 数据
echo $dom->saveXML();
?>
程序的运行结果为


100001
lucy
girl

DOM 组件不但能够动态创建 XML 文件,还可以读取 XML 文件,如下代码实现对之前
XML 文件的读取:
$dom = new DomDocument(); //创建 DOM 对象
$dom->load('info.xml'); //load XML 文件
$root = $dom->documentElement; //获取根节点
read_xml($root); //读取对象
function read_xml($node)
{
$children = $node->childNodes; //获得所有子节点
foreach($children as $e) //循环遍历
{
if($e->nodeType == XML_TEXT_NODE) //文本型
{
echo $e->nodeValue."\n";
面试笔试经验技巧篇
XVI
}
else if($e->nodeType == XML_ELEMENT_NODE) //对象节点,递归调用
{
read_xml($e);
}
}
}
?>
程序的运行结果为
01
lucy

gir

想了解更多关于临沂网络营销,临沂网络公司,临沂网站营销,临沂网站推广,临沂网站制作,临沂网站设计,临沂网站建设,请关注http://www.lywlyx.com/学习更多关于知识

导航菜单

13405497667

Mob:
13405497667
Add:
临沂市兰山区创业大厦9F
  • 扫码浏览手机站

  • 扫一扫微信聊

临沂百灵网络科技有限公司

联系电话:13405497667

临沂网站建设