📄 xml.php
字号:
<?php
$file = "data.xml"; //需要处理的xml文件名称
$depth = array(); //定义一个数组
/****************************************
function: 标记开始回调函数
$param: $parser xml解析器名称
$param: $name 标记名称
$param: $attrs 标记属性
****************************************/
function startElement($parser, $name, $attrs) {
global $depth;
//需要缩进的空格数目
for ($i = 0; $i < $depth[$parser]; $i++) {
print " ";
}
print "$name\n";
$depth[$parser]++;
}
/*********************************
function: 结束标记回调函数
$param: $parser xml解析器名称
$param: $name 标记名称
*********************************/
function endElement($parser, $name) {
global $depth;
$depth[$parser]--; //减少缩进的空格数
}
$xml_parser = xml_parser_create(); //创建一个xml解析器
xml_set_element_handler($xml_parser, "startElement", "endElement"); //设定标记回调
//函数
//打开一个文件
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
//读取文件中的内容
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) { //处理xml文档的内容
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser); //释放与$xml_parser处理器相关的所有内存资源
?>
如果以下面的XML文件为例子,输出的结果如图13-1所示。
data.xml:
<?xml version="1.0"?>
<!--
@(#) $Header: /cvsroot/PHPlibrary/example.xml,v 1.1 1999/07/07 04:13:19 mlemos Exp $
-->
<CONTENTS>
<HEADER>
<TITLECONTENT>transfered</TITLECONTENT>
</HEADER>
<OBJECT>
<LINE>
<CELL>function name</CELL>
<CELL>explanation</CELL>
</LINE>
<LINE>
<CELL>echo</CELL>
<CELL>return the content of a variable</CELL>
</LINE>
</OBJECT>
</CONTENTS>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -