PHP:DOMDocument - 带有冒号的属性?
问题描述:
我正在使用DOMDocument来解析XML(SVG)。PHP:DOMDocument - 带有冒号的属性?
一些节点具有属性与在它冒号,如:
<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";
}
}
的属性与一个:被打印而无需所述第一部分(命名空间)
如何在遍历这样的属性时获取该属性的名称空间?
答
回答,nodeName
从DOMNode。
$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
foreach($childnode->attributes as $attribute) {
echo $attribute->nodeName."\n";
}
}
原来的答案:
如何prefix
从DOMNode?
$node= DOMDocument->documentElement;
foreach($node->childNodes as $key=>$childnode) {
foreach($childnode->attributes as $attribute) {
echo $attribute->prefix.":".$attribute->name."\n";
}
}
答
当您使用DOMDocument
时,您将需要明确使用名称空间(这是冒号指示的内容)。
看看这个方法:从OP的评论http://www.php.net/manual/en/domelement.getattributenodens.php
Thanx,已经找到$ attribute变量(DOMNode)的其他属性。我现在使用$ attribute-> nodeName,它返回整个属性名称,不管它是否有命名空间... – Dylan 2011-06-09 14:46:10
太棒了!用您的归档结果更新答案。 – 2011-06-09 14:52:29