php中DOMDocument与SimpleXML创建与解析xml程序
发布时间:2022-02-10 14:39:34 所属栏目:PHP教程 来源:互联网
导读:通过DOM扩展创建一个DOMDocument对象,通过DOMDocument对象的方法向文档添加元素,最后通过save()或saveXML()方法来生成文档,也可以通过SimpleXML来快速解析xml文档. 例子:DOM XML 解析器函数是 PHP 核心的组成部分,无需安装就可以使用这些函数. XML文件,将在
通过DOM扩展创建一个DOMDocument对象,通过DOMDocument对象的方法向文档添加元素,最后通过save()或saveXML()方法来生成文档,也可以通过SimpleXML来快速解析xml文档. 例子:DOM XML 解析器函数是 PHP 核心的组成部分,无需安装就可以使用这些函数. XML文件,将在我们的例子中使用下面的 XML 文件,代码如下: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> 加载和输出 XML,我们需要初始化 XML 解析器,加载 XML,并把它输出,例子代码如下: <?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?> //以上代码的输出: //George John Reminder Don't forget the meeting 假如您在浏览器窗口中查看源代码,会看到下面这些 HTML,代码如下: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> 上面的例子创建了一个 DOMDocument-Object,并把 "note.xml" 中的 XML 载入这个文档对象中. saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它.例子代码如下: <?php //创建一个新文档 $dom = new DOMDocument('1.0'); //创建根元素book,并将其添加到文档中 $book = $dom->appendChild($dom->createElement('book')); //创建一个title元素,并将其添加到$book中 $title = $book->appendChild($dom->createElement('title')); $title->appendChild($dom->createTextNode('Php Book')); //为title元素的添加属性cover,属性值soft $title->setAttribute('cover','soft'); //创建author元素,并将其添加到$book中 $kaifabu = $book->appendChild($dom->createElement('author')); //为author元素添加文本 $kaifabu->appendChild($dom->createTextNode('kaifabu')); //创建author元素,并将其添加到$book中 $kaifabu = $book->appendChild($dom->createElement('author')); //为author元素添加文本 $kaifabu->appendChild($dom->createTextNode('Younker')); //将格式化的DOM文档输出为XML $dom->formatOutput = true; //生成books.xml文件 $dom->save('books.xml'); //此步把生成的XML以字符串形式显示 echo htmlentities($dom->saveXML()); ?> //输出结果如下: //开源代码Cuoxin.com <?xml version="1.0" ?> <book> <title cover="soft">Php Book</title> <author>kaifabu</author> <author>Younker</author> </book> 注:如果上面生成XML这步改成$dom->save(‘books.xml’);直接生成一个books.xml文件. 下面我们利用simplexml来解析xml文件 SimpleXML 函数允许您把 XML 转换为对象,通过普通的属性选择器或数组迭代器,可以处理这个对象,就像处理任何其他对象一样. 其中的一些函数需要最新的 PHP 版本。 安装:SimpleXML 函数是 PHP 核心的组成部分,无需安装即可使用这些函数,代码如下: <?php //使用SimpleXML扩展解析XML文档,解析出来是一个对象,可以通过对象获取它的元素内容 $sx = simplexml_load_file('books.xml'); //获取title标签的内容 $title = $sx->title; //因为有两个author元素,通过循环获取每个author元素内容 $authors = ''; foreach($sx->author as $author) { $authors .= '&' . $author; } $authors = substr($authors, 1); echo $title . ':' . $authors; ?> //输出结果如下: //Php Book:kaifabu&Younker PHP:指示支持该函数的最早的 PHP 版本. SimpleXML函数 __construct() 创建一个新的 SimpleXMLElement 对象。 5 addAttribute() 给 SimpleXML 元素添加一个属性。 5 addChild() 给 SimpleXML 元素添加一个子元素。 5 asXML() 从 SimpleXML 元素获取 XML 字符串。 5 attributes() 获取 SimpleXML 元素的属性。 5 children() 获取指定节点的子。 5 getDocNamespaces() 获取 XML 文档的命名空间。 5 getName() 获取 SimpleXML 元素的名称。 5 getNamespaces() 从 XML 数据获取命名空间。 5 registerXPathNamespace() 为下一次 XPath 查询创建命名空间语境。 5 simplexml_import_dom() 从 DOM 节点获取 SimpleXMLElement 对象。 5 simplexml_load_file() 从 XML 文档获取 SimpleXMLElement 对象。 5 simplexml_load_string() 从 XML 字符串获取 SimpleXMLElement 对象。 5 (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |