PHP从入门到精通——读书笔记(第22章—23章:PHP与XML技术、Ajax技术)

第二十二章:PHP与XML技术

1:XML(eXtensible Markup Language:扩展性标记语言,是用来描述其他语言的语言,允许用户设计自己的标记)概述

2:XML文档结构

1)XML声明——XML声明在文档中只能出现一次,而且必须是在第一行。声明包括XML版本、编码信息等
<?xml version="1.0" encoding="gb2312" standalone="yes" ?>

2)处理指令:<?处理指令名 处理执行行信息 ?>
<?xml-stylesheet type="text/css" href="Book.css" ?>

3)注释—— "<!--"和"-->"

4)XML元素
<标签 属性名="属性值">数据内容</标签>

5)使用CDATA标记——在XML中,特殊字符">"、"<" 和 "&"的输入需要使用实体引用来处理

但如果遇到大量的特殊符号需要输入,则使用 CDATA(Character data,字符数据)标记,在CDATA标记段的内容都会被当做纯文本数据处理:
<![CDTA][
...
]]>

6)命名空间——命名空间通过在元素前面增加一个前缀来保证元素和属性的唯一性,重要用途是用于融会不同的XML文档
<标签名称 xmlns:前缀名称="URL">

3:在PHP中创建XML文档

View Code
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="gb2312"?>';
echo '计算机图书';
echo '<PHP>';
echo '<书名>PHP项目开发</书名>';
......

4:SimpleXML函数

header("Content-Type:text/xml;charset=utf-8");

//第一种方法,将指定的文件解析到内存中
$xml_1 = simlexml_load_file("5.xml");
print_r($xml_1);

//第二种方法,将创建的字符串解析到内存中
$str = <<<XML
<?xml version='1.0' encoding='gb2312'?>
<Object>
        <ComputerBook>
                <title>入门到精通</title>
        </ComputerBook>
</Object>
XML;

$xml_2 = simple_load_string($str);
echo '<p>';
print_r($xml_2);

//第三种方法,将一个使用DOM函数创建的DomDocument对象导入到内存中
$dom = new domDocument();
$dom->loadXML($str);
$xml_3 = simplexml_import_dom($dom);
echo '<p>';
print_r($xml_3);

使用SimpleXML对象中的children()函数和foreach循环语句可以遍历所有子节点元素

$xml = simplexml_load_string($str);
//循环输出根节点
foreach ($xml->children() as $layer_one ){
        print_r($layer_one);
        echo '<br>';
        //循环输出第二层根节点
        foreach($layer_one->children() as $layer_two){
                print_r($layer_two);
                echo '<br>';
        }
}

遍历所有属性—— attributes() 方法

访问特定节点元素和属性
$xml[name] ; $xml->book[0]->computerbook

修改XML数据
$xml->book->computerbook['type'] = iconv('gb2312', 'utf-8', 'PHP程序员必备工具');
iconv()函数是转换编码函数。上面是将字符串"PHP程序员必备工具"从gb2312的编码格式转换成utf-8编码格式

保存XML文档——使用asXML()

$xml = simplexml_load_file('10.xml');
$xml->book->computerbook['type'] = iconv('gb2312','utf-8','PHP程序员必备工具');
$xml->book->computerbook = iconv('gb2312','utf-8','PHP函数参考');
//格式化对象$xml
$modi = $xml->asXML();
//将对象保存到10.xml文档中
file_put_contents('10.xml', $modi);
//程序读取xml文档
$str = file_get_contents('10.xml');
echo $str;

动态创建XML文档

$dom = new DomDocument('1.0','gb2312');
$object = $dom->createElement('object');
$dom->appendChild($object);
$book = $dom->createElement('book');
$object->appendChild($book);
$computerbook = $dom->createElement('computerbook');
$book->appendChild($computerbook);
$type = $dom->createAttribute('type');
$computerbook->appendChild($type);
$type_value = $dom->createTextNode('computer');
$type->appendChild($type_value);
$bookname = $dom->createElement('bookname');
$computerbook->appendChild($bookname);
$bookname_value = $dom->createTextNode(iconv('gb2312','utf-8','PHP从入门到精通'));
$bookname->appendChild($bookname_value);
echo $dom->saveXML();

 

第二十三章:PHP与Ajax技术

1:Ajax核心—— XMLHttpRequest技术,它是一个具有应用程序接口的javascript对象,能使用超文本传输协议(HTTP)连接服务器

posted @ 2013-01-08 12:31  cateatmycode  阅读(281)  评论(0编辑  收藏  举报