php操作xml
需要操作的数据复制代码如下:xml版本='1.0 '?books book name=' JavaScript : The definitive Guide ' publisher=' O ' Reilly Media,Inc . ' author David Flanagan/作者/book book name='PHP和MySQL Web Development ' publisher=' Perason Education ' author Luke Welling/作者author Laura Thomson/作者/book name=' http : The definitive Guide ' publisher=' O ' Reilly Media,Inc . '作者David courley/作者Brian totty/作者/book/book XML几个基本概念1 .Node: node是很多编程语言中处理XML时的节点。节点是一个相对宽泛的概念。在XML中,元素、属性、名称空间、注释、文本内容、处理指令和整个文档都属于节点,这意味着XML文档中每个独立的小部分都是一个节点,books/books是?xml version="1.0 "?是的,name=“xxxx”也是,作者/作者标签是,甚至作者的名字David Flanagan也是一个文本节点。2.Element:很多编程语言都是处理XML的,node是一个非常宽泛的概念,因为要统一API,node的方法不会太多,element,也就是element,是node的一个子集,只是一个像xxx/xxx这样的标签,element的操作方法通常有很多。3.属性:这很容易理解。里面像xx=“oo”这样的东西都是属性节点。4.转义字符:与HTML类似,xml也有被语言占据的符号。当你想使用这些特殊字符时,你需要转义。
DOMDocument对象我用DOMDocument对象来操作xml,比simpleXml更科学。当然,第一天使用php纯粹是个人行为。DOMDocument有几种常见的属性和方法。
加载xml复制代码的代码如下: $ path=$ _ server[' document _ root ']。/books . XML ';$ books=new DOM document();$ books-load($ path);读取/遍历节点和属性的代码如下: $ book elements=$ books-getelementsbyname(' book ');foreach($ bookElements as $ book){ foreach($ book-attributes as $ attr){ echo strtopol($ attr-nodeName)。' —— '.$attr-nodeValue。br/';}回显“author :”;foreach($ book-getElementsByTagName(' author ')as $ author){ echo $ author-node value。'';} echo ' br/br/';}
当然,对于很多属性,你只想读取一个,可以通过item(index)方法通过index读取复制的代码。代码如下: echo $ book-attributes-item(1)-node value;您也可以通过强大的xpath查询复制如下代码:您还可以通过强大的xpath查询修改属性/节点: foreach($ book elements as $ book){ foreach($ book-attributes as $ attr){ # $ book-set attribute($ attr-nodename,strtopper ($ attr-nodevalue)。$ attr-node value=strtoupper($ attr-node value);}回显“author :”;foreach($ book-getElementsByTagName(' author ')as $ author){ $ author-node value=strtoupper($ author-node value);} } $ books-save($ path);
对属性修改可以直接访问其节点值改动,也可以使用setAttribute方法,改动完了别忘了使用救援保存。复制代码代码如下:美元book-SetAttribute($ attr-nodeName,strtoupper($ attr-node value));$ attr-node value=strtoupper($ attr-node value);添加元素/属性复制代码代码如下:美元new book=$ books-create元素(' book ');#创建新元素$ new book-set属性('名称、PHP对象、模式和实践');#创建新属性,方法一$ publisher=$ books-CreateAttribute(' publisher ');#创建新属性,方法二$ publisher-节点值=' Apress L . P$新书-appendChild($ publisher);#把属性添加到元素上$ author=$ books-create元素(' author ');#创建子元素$ author-node值=' Matt Zandstra$新书-appendChild($作者);#把子元素添加到父元素上$ books-文档元素-appendChild($ new book);#添加整个节点$ books-save($ path);删除属性/节点复制代码代码如下: $ first=$ bookElements-item(0);$ first-RemoveAttribute(' publisher ');$ second=$ bookElements-item(1);$ second-父节点-remove child($ second);$ books-save($ path);
初学服务器端编程语言(专业超文本预处理器的缩写)文章肯定有很多谬误,希望大家批评指正,共同进步。