1

我正在使用 DOMDocument 来解析 XML (SVG)。

某些节点的属性中带有冒号,例如:

<svg 
   id="svg2"
   width="1000"
   height="1000"
   sodipodi:version="0.32"
   inkscape:version="0.48.1 "
   ...
>

但是当我这样做时:

$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
  foreach($childnode->attributes as $attribute) {
    echo $attribute->name."\n";
  }
}

带有 : 的属性在没有第一部分(命名空间)的情况下打印

在遍历这样的属性时,如何获取该属性的命名空间?

4

2 回答 2

3

当您使用DOMDocument.

看看这个方法:http ://www.php.net/manual/en/domelement.getattributenodens.php

于 2011-06-09T14:20:25.557 回答
1

nodeName来自DOMNode的 OP 评论的回答。

$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
  foreach($childnode->attributes as $attribute) {
    echo $attribute->nodeName."\n";
  }
}

原答案:

prefixDOMNode怎么样?

$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
  foreach($childnode->attributes as $attribute) {
    echo $attribute->prefix.":".$attribute->name."\n";
  }
}
于 2011-06-09T14:43:55.777 回答