2

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

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

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

任何指针将不胜感激!

4

1 回答 1

1

的值DOMNode::nodeName取决于该节点是哪个子类型。

对于 aDOMElement它是标记名称:DOMElement::$tagName

nodeName包含限定名称,因此如果设置了前缀,则它带有前缀。

如果您为该DOMElement子类型获得不同的值,这将构成缺陷,因为它违反了标准 DOM 模型。

在行动中看到它。(许多不同的 PHP 版本,从 PHP 5.0.0 到 5.5.0beta2 没有变化)

于 2013-04-10T23:52:56.867 回答