前言:虽然xml的格式看起来跟html差不多,但是最近做项目由于用的是thinkphp5.0的版本,做的过程中还是遇到了一些问题。在这里做一下记录。

首先我们需要定义一个dom对象,我们都知道 php中是这样来写的

> $dom = new DOMDocument(); 

可是这时候就报错了,第一步就卡住了,别说进行下面的DOM操作了

于是我翻了thinkPHP5.0手册,手册上倒是提了句关于命名空间,

如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \

$xml = new \ SimpleXmlElement($xmlstr);

可惜我当时脑子愚笨,并没有受启发,后来翻了好些博客,才终于看到

> $dom = new \DOMDocument();

好了。DOM对象终于有了,终于可以操作DOM了

$dom->loadXML($xmlStr);    //将xml字符串转换为xml文档

$link = $dom->getElementByTagName('MobileNoteLink');

$Item = $dom->createElement('MobileNodeItem);

$Item->setAttribute('to',$param['to']);

$link->appendChild($Item);

然后看了一下,嘿,咋又报错了,我这啥都没干,就是基本的DOM操作啊,,,

这一下可是费了好久的时间才找到问题

> $link = $dom->getElementByTagName('MobileNoteLink')->item(0);

你得获取到特定的那个标签元素,不然他就会把所有的标签都获取到,成了一个集合

最后一步,因为这是后台操作XML,数据库的值呢是xml格式的,我也是第一次碰到这样的情况,还是经验太少,嘻嘻

需要将xml文档转换为xml格式字符串

$newXML = $dom->saveXML();

再之后将字符串插入数据库就行了。

-------------------------------------------------------------------------------------------------------------------------------

用上述这种方式,在linux下需要安装php,编译 ./configure时安装相关的xml库

所以,可以使用另一种在thinkphp下也可以处理xml     simplexml_load_string()将xml字符串转换为xml对象

添加: addChild(),为节点添加属性直接 item['content']

删除: unset($xml->MobileLink) 删除对应节点

编辑:

$xml->MobileLink->MobileItem['Content'] = $param['content']

  

thinkphp 操作xml格式的更多相关文章

  1. Opencv YAML和XML格式文件操作详解

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/47660943 本文参考Opencv 2 ...

  2. SqlServer简单的操作XML以及SQl的 try catch等统一格式

    1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...

  3. 使用WCF传输DataTable:DataTable和Xml格式的字符串相互转换(C#)

    背景:项目中要用到客户端向服务端传数据,使用WCF,绑定webHttpBinding,做了一个小例子. 业务逻辑简介:客户端在a表中添加了几条数据,从SQL Server数据库直接取出新添加的数据(D ...

  4. php中通过DOM操作XML

    DOM文档在js里早就接触过,知道DOM不但可以操作html文档,还可以操作XHTML,XML等文档,有着极强的通用性,下面我们通过两个小例子,看看在PHP中是如何用DOM操作XML文档的,和js中差 ...

  5. WP8解析XML格式文件

    DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式,如果要返回XML格式的话,需要在加上format=xml. 这里举一个简单的解析XML格式的例子(更 ...

  6. XPath注入跟SQL注入差不多,只不过这里的数据库走的xml格式

    SQL注入这块不想细聊了,相信很多朋友都听到耳朵长茧,不外乎是提交含有SQL操作语句的信息给后端,后端如果没有做好过滤就执行该语句,攻击者自然可以随意操纵该站点的数据库. 比如有一个图书馆站点book ...

  7. SQL 里解析 XML 格式 字段 信息

    DECLARE @ItemMessage XML ),zje ),yfje ),bcje ),URL ),Remark )) SET @ItemMessage=N'<List> <i ...

  8. R语言XML格式数据导入与处理

    数据解析 XML是一种可扩展标记语言,它被设计用来传输和存储数据.XML是各种应用程序之间进行数据传输的最常用的工具.它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强 ...

  9. Office文件的Open Xml 格式

    获取Office文件的Open Xml格式文件的步骤如下: 1.修改想要得到OpenXml格式文件的文件后缀名为.rar. 2.解压即可得到. 此时可以对xml文件进行操作,要想再次把这已经解压后的文 ...

随机推荐

  1. Python3学习之路~7.1 静态方法、类方法、属性方法

    静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量 ...

  2. php7.2连接Sqlserver2008 r2

    下载Sql Server PHP扩展 Microsoft Drivers for PHP for SQL Server https://github.com/Microsoft/msphpsql/re ...

  3. openpyxl.utils.exceptions.IllegalCharacterError

    如果是手动调用 xlwt 这种第三方库除了错可能没法找错误,但是从错误中我们看到错误是由 openpyxl 抛出的,我们试着从 openpyxl 中找解决方案 出错处的代码 value = value ...

  4. raise error

    raise TypeError("参数q_type 错误 ")

  5. UBUNTU安装 SSH 服务

    输入命令"sudo apt -y install openssh-server" 输入当前用户密码,等待完成openssh-server安装. 安装完毕,运行命令"sud ...

  6. 【JavaScript】常用的数据类型的处理方式

    写这篇文章的目的,是在学习过程中反复查找如何对这三种数据类型进行转换的方法,所以干脆总结在一起. 一.字符串 0.includes:string.includes(),查找当前string中是否包含某 ...

  7. NOIP2018总结

    细细想来,学习OI也有4年多的时间了,今年已经是第二次参加noip提高组了,有必要写点什么了 NOIP2018 记得在天刚蒙蒙亮的时候走进70中,这是第四次了,但紧张只增不减,在刺骨的寒风下身体微微发 ...

  8. HTTP笔记1

    传输层:提供进程地址 TCP:传输控制协议,面向连接的协议:通信前需要建立虚拟链路:结束后拆除链路.端口号:0-65535 UDP:用户报文协议,无连接的协议.端口号:0-65535 IANA(互联网 ...

  9. Linux 故障问题处理

    一.   Debian   网卡问题 原因: 网卡提示 Device Not Managed 处理方法: . 编辑/etc/NetworkManager/NetworkManager.conf: 将其 ...

  10. webpack4 坑收集:html-webpack-plugin在多页面时,无法将optimization.splitChunks提取的公共块,打包到页面中

    问题描述:  有2个页面index.html和product.html,用html-webpack-plugin和optimization.splitChunks的基本配置如下 { template: ...