字体:  

PHP中setAttribute和getAttributeNode的区别

loveloop 发表于: 2008-8-29 10:15 来源: PHPChina 开源社区门户

假设我要修改XML节点的某一信息,可以选用很多方式,下面的两种就是:

1、DOMElement->getAttributeNode('name')->value = "myname";


2、DOMElement->setAttribute('name','myname');


在实际中,我使用第一种的时候,发现他们的处理方式是不同的。比如输入全角字符"——"的时候,第一种执行完成后,XML就会出错,而第二种就不会出错。


但具体他们是怎样执行的,我还是不懂,请大家帮忙

最新回复

programmerhuang at 2008-8-29 18:14:47
具体是怎么执行不清楚
但前一种是返回一个属性节点, 在DOM中, 属性也是一个节点.
出错, 我想可能是编码问题吧.
loveloop at 2008-9-01 13:45:55

QUOTE:

原帖由 programmerhuang 于 2008-8-29 18:14 发表
具体是怎么执行不清楚
但前一种是返回一个属性节点, 在DOM中, 属性也是一个节点.
出错, 我想可能是编码问题吧.
我不认为是编码问题,因为都是UTF-8格式的编码,执行结果是第一种把 "———"转换为十进制字符后中间加了空格,所以XML就出错了
programmerhuang at 2008-9-01 18:25:21
转换为十进制字符?
不明白, 为什么要转, 你输入其它的字符中文会不会出错