繁体   English   中英

PHP:DOMDocument - 带有冒号的属性?

[英]PHP: DOMDocument - attributes with a colon in it?

我正在使用 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";
  }
}

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

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

当您使用DOMDocument时,您将需要明确使用名称空间(冒号表示的内容)。

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

来自 OP 的评论的回答,来自DOMNodenodeName

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

原答案:

来自DOMNodeprefix怎么样?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM