0

我可以使用 DOMXPath 来做,但我想只用 DOMDocument 来做。

我尝试了类似的东西

$dom->getElementsByTagName('yweather:condition')
//or
$dom->getElementsByTagNameNS('yweather','condition')

但都没有奏效。

有人知道怎么做吗?或者我需要使用 DOMXPath?


您可以使用.parentsUntil()并以这种方式计算组合位置:

var x=0;
var y=0;
$('#target').add($('#target').parentsUntil($('#a').parent())).each(function(){
  x+=$(this).position().left;
  y+=$(this).position().top;
});
alert(x+':'+y);​

http://jsfiddle.net/rDzpy/

4

2 回答 2

0

您需要完整的命名空间,而不是本地名称 yweather。

getElementsByTagNameNS('fullname_space', 'condition')
于 2012-06-09T22:43:24.017 回答
0
foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', 'condition') as $element) {
    echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}

http://www.w3.org/2001/XInclude将是您附加命名空间的 url

于 2012-06-09T22:47:19.207 回答