[英]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 的评论的回答,来自DOMNode的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";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.