对PHP DomNode节点名行为的更改

对PHP DomNode节点名行为的更改,php,xml,Php,Xml,在v5.3和v5.4之间,nodeName的值的行为似乎发生了微妙的变化(据我所知,这是未记录的) 在v5.3中,返回的名称不包含名称空间,但在v5.4中,名称包含名称空间前缀。我不确定更改是由PHP还是libxml引起的,但我在更改日志中也没有看到任何更改。我也不清楚变化发生在什么时候,但我看到了5.3.10-1ubuntu3.6和v5.4.6-1ubuntu1.2的前后效果 有人知道这是什么时候/为什么/如何发生的吗?这一变化破坏了我发布的一些服务器软件,因此我可以更好地理解这一变化,以便有

在v5.3和v5.4之间,nodeName的值的行为似乎发生了微妙的变化(据我所知,这是未记录的)

在v5.3中,返回的名称不包含名称空间,但在v5.4中,名称包含名称空间前缀。我不确定更改是由PHP还是libxml引起的,但我在更改日志中也没有看到任何更改。我也不清楚变化发生在什么时候,但我看到了5.3.10-1ubuntu3.6和v5.4.6-1ubuntu1.2的前后效果

有人知道这是什么时候/为什么/如何发生的吗?这一变化破坏了我发布的一些服务器软件,因此我可以更好地理解这一变化,以便有效地解决它


任何指点都将不胜感激

DOMNode::nodeName的值取决于该节点的子类型

对于
doElement
而言,它是标记名:

nodeName
保存限定名,因此如果设置了前缀,则会使用前缀

如果您为该DomeElement子类型获取不同的值,这将限定缺陷,因为它违反了标准DOM模型


(许多不同的PHP版本,从PHP 5.0.0到5.5.0beta2没有变化)

:p您使用的是哪个操作系统?谢谢Kolink-非常有用!;-)这是在两台Ubuntu服务器上运行的相同代码,这两台服务器都有标准软件包,但都是上两个版本(Quantal Quetzal和一个Precise Pangolin)的代码。当我计算响应时,我从最新版本得到ns:tagname,但仅从早期版本得到tagname。您知道这可能是PHP还是libxml问题吗?我的意思是-我该向谁投诉!?!请参见以下输出libxml版本的示例:-由于这些版本不会改变,请检查您使用的系统版本。很难说到底是什么导致了这个问题,因为我无法重现它。DOM模型参考在这里:然后在这里:M8R-1jmw5r-感谢您的帮助。但是我快疯了。您所指的简单测试确实在3v4l.org和我的两台机器上产生了相同的结果。然而,我仍然看到我的真实代码中的差异!我已经把它简化为最简单的形式,仍然可以在我的机器上显示差异。我已经上传了这个代码,但是3v4l.org说他们的评估结果是一样的。我的两台机器肯定有细微的差别,但我不知道会是什么!救命啊!请在我被车送到有趣的农场之前!我还没有弄清楚为什么我的机器表现不同,但我已经解决了我的问题。他们以不同的方式处理格式糟糕的XML。一旦XML被更正,它们的行为就会如预期的那样。我的原始代码未能在我的代码正在读取的XML片段中包含名称空间声明。谢谢你把我送到那里。