xml总结

一、1、XML 被称为“web领域的世界语”。xml(EXtensible Markup Language)可扩展性标记语

言:(用户可以自定义标签)
2、xml发展
当 XML(扩展标记语言)于 1998 年 2 月被引入软工业界时,它给整个行业带来了一场风暴。有

史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可

以用于 WEB,而且可以被用于任何地方” —万维网标准之王Jeffrey Zeldman(杰夫·齐曼)
3、XML是什么?
XML(可扩展性标记语言),是独立于软件和硬件的信息传输工具
XML是一种标记语言(标签语言),很类似于HTML
XML的设计宗旨是传输数据,而非显示数据
XML的标签没有被预定义,所以需要自行定义标签
4、HTML超文本标记语言(超出文本表示的范围)
5、XML 和 HTML的差异
XML不是HTML的替代,而是对HTML的补充,XML用于传输数据,而HTML用于格式化并显示数据
XML 与 HTML为不同的目的而设置
XML被设计为传输和存储数据,其焦点是数据的内容
HTML被设计用来显示数据,其焦点是数据的外观
XML 旨在传输信息,而HTML旨在显示信息
HTML的发展:html->xhtml->html5
6、XML文档的结构:树状结构
XML文档形成了一种树状结构,他从根部开始,然后扩展到枝叶
XML文档必须包含根元素,该元素是所有元素的父元素

7、XML用途:
(1)存储和传输数据
(2)作为小型数据库使用。保存数据
(3)将某些项目的配置文件保存到XML中,作为项目的配置文件使用
8、XML的语法规则
所有XML元素都必须有闭合标签
XML标签对大小写敏感
XML标签必须正确的嵌套
XML文档必须有根元素,必须有且只有一个根元素
XML的属性值需加引号,建议使用双引号
XML中的注释(<!—注释内容 ?)
如果XML中有特殊字符,需要实体引用
  <    -----      &lt;
  >    -----      &gt;
  &    -----      &amp;
  ‘     -----     &apos;
  “     -----     &quot;
二、php通过DOM读取xml文件
DOMDocument       操作整个节点树
DOMElement          操作DOM节点树中某个元素节点
DOMNodeList           操作DOM节点树中某些元素(节点)的集合
(1)实例化当前需要的对象(DOMDocument对象)
(2)解析xml文件(load方法)
(3)通过标签名找元素(getELementsByTagName())
(4)通过DOMNodeLIst对象的item()方法根据索引(0开始)获得某个节点
(5)如果下面还有子元素,继续调用getElementsByTagName(),一直找到某个具体的元素
(6)在通过nodeValue获得其职

例:<?php
//1.实例化对象,参数1版本号(xml的版本号)2编号
$doc = new DOMDocument('1.0','utf-8');
//var_dump($doc);

//2该加载xml文件,在内存中生成一个节点树/树状图,首先要知道我们加载那个文件,使用

domdocument对象的load方法,参数就是xml文件名,返回一个布尔值,如果为真说明加载成功
$xml_file='a.xml';
$res = $doc->load($xml_file);
//var_dump($res);

/*现在php如何操作这个树状图呢?我们通过这个domdocument去操作它,方法是

getelmentsbytagname();返回的任然是一个对象,domnodelist,这个对象是一个集合类型的对

象,这个对象有length属性,表示有几个元素/节点,通过item方法可以获得指定的那个节点,主

意参数是这些元素的索引,下标,是从0开始的*/

$books=$doc->getElementsByTagName("book");//获取标签的信息,并非具体的值
//var_dump($books);

//var_dump返回数据类型
var_dump($books->length);//xml文件的长度
echo "<br>";
echo "<br>";
$book1=$books->item(1);//获得他得元素,tiem(0)就是第一行,第一个节点的全部内容
echo $book1->nodeValue;//nodeValue 属性,传回指定节点相关的文字,标题与作者

echo "<br>";
echo "<br>";

//3继续通过标签名获得元素/节点,要求:我要获得标题名,返回的依然是结合类型的对象
$title=$book1->getElementsByTagName('newtitle1');//获得第二行中title值
$title_1=$title->item(0);
//返回的还是domelement对象,通过这个对象的nodevalue方法可以获得这个文本节点的值
//$title_1=$book1->getElementsByTagName('title')->item(0);
var_dump($title_1->nodeValue);


//在php中文本空格等不算DOM节点

?>


三、如何通过PHP创建一个XML?
利用DOM在xml当中添加节点
(1)创建节点(DOMDocument::createElement),创建好节点之后,并不会添加到xml中。
(2)添加节点(DOMDocument::appendChild)
(3)保存xml(DOMDocument::save)
(4)利用(removeChild)进行节点的删除
(5)利用(replaceChild)进行节点的替换
注意:::节点操作都是对其子节点进行的操作,在进行节点操作之前要确定当前节点是谁!
思路:
(1)先在整个文档范围内创建一个节点
(2)给这个新建的节点增加内容
(3)确定节点的位置(关系)
(4)保存
不管是创建元素节点还是属性节点,创建的时候不去确定它的位置,所以是DOMDocument对象去创

建,创建完之后再去确定它的位置
例:
<?php
$doc=new DOMDocument('1.0',"utf-8");//创建DOM对象
$bookshelf=$doc->createElement('bookshelf');//创建一个book节点
$doc->appendChild($bookshelf);//把bookshelf添加到DOM对象中
$book=$doc->createElement('book');
$title=$doc->createElement('title');
$author=$doc->createElement('author');
$title->nodeValue='php加强';
$author->nodeValue='张三';
$book->appendChild($title);
$book->appendChild($author);
$id=$doc->createAttribute('id');//创建属性时不去给他赋值
$id ->value='book1';
$book->appendChild($id);
$bookshelf->appendChild($book);
$doc->formatOutput=true;//false横着排,true竖着排
$doc->save('fuxi2.xml');

?>
6、属性
1,parentNode当前节点的父节点
2,childNodes某个节点下的所有子节点
3,firstChild  第一个子节点
4,lastChild   最后一个子节点
5,previousSibling 前一个兄弟节点
6,nextSibling        后一个兄弟节点
例:
<?php
$doc=new DOMDocument('10','utf=8');
$doc->load('a.xml');
$books=$doc->getElementsByTagName('book')->item(1);
$childs=$books->childNodes->item(0);//childNodes某个节点下的所有子节点,这里获得的是

title
echo $childs->nodeValue;
$next=$childs->nextSibling;//nextSibling当前节点后的一个兄弟节点,这里获得作者
echo $next->nodeValue;
?>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值