我正在使用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";
}
}
带有:的属性打印时没有第一部分(命名空间)
如何在迭代这样的属性时获取该属性的命名空间?
答案 0 :(得分:3)
使用DOMDocument
时,您需要明确地使用名称空间(冒号表示的名称)。
看看这个方法:http://www.php.net/manual/en/domelement.getattributenodens.php
答案 1 :(得分:1)
来自DOMNode的OP评论nodeName
的答案。
$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
foreach($childnode->attributes as $attribute) {
echo $attribute->nodeName."\n";
}
}
原始答案:
来自DOMNode的prefix
怎么样?
$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
foreach($childnode->attributes as $attribute) {
echo $attribute->prefix.":".$attribute->name."\n";
}
}