Is there a way to get all of a DOMElement's attributes?

dom, domdocument, php, xml

Solution

You can get all the attributes of a given DomNode, using the DomNode->attributes property, it will return you DOMNamedNodeMap containing the attribute names and values.

foreach ($node->attributes as $attrName => $attrNode) {
    // ...
}

Problem

I'm reading some XML with PHP and currently using the `DOMDocument` class to do so. I need a way to grab the names and values of a tag's (instance of `DOMElement`) attributes, without knowing beforehand what any of them are. The documentation doesn't seem to offer anything like this. I know that I can get an attribute's value if I have its name, but again, I don't know either of these and need to find both. I also know that other classes like `SimpleXMLElement` have this capability, but I'm interested in how it can be done with `DOMDocument`.

Original source