本文整理汇总了PHP中DomDocument::hasAttributes方法的典型用法代码示例。如果您正苦于以下问题:PHP DomDocument::hasAttributes方法的具体用法?PHP DomDocument::hasAttributes怎么用?PHP DomDocument::hasAttributes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DomDocument
的用法示例。
在下文中一共展示了DomDocument::hasAttributes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: domToArray
/**
* From http://stackoverflow.com/questions/14553547/what-is-the-best-php-dom-2-array-function
*
* @param \DomDocument $root
* @return array
*/
protected function domToArray($root)
{
$result = [];
if ($root->hasAttributes()) {
$attrs = $root->attributes;
foreach ($attrs as $attr) {
$name = str_replace('cas:', '', $attr->name);
$result['attributes'][$name] = $attr->value;
}
}
if ($root->hasChildNodes()) {
$children = $root->childNodes;
if ($children->length == 1) {
$child = $children->item(0);
if ($child->nodeType == XML_TEXT_NODE) {
$result['value'] = $child->nodeValue;
return count($result) == 1 ? $result['value'] : $result;
}
}
$groups = [];
foreach ($children as $child) {
$childName = str_replace('cas:', '', $child->nodeName);
if (!isset($result[$childName])) {
$result[$childName] = $this->domToArray($child);
} else {
if (!isset($groups[$childName])) {
$result[$childName] = [$result[$childName]];
$groups[$childName] = 1;
}
$result[$childName][] = $this->domToArray($child);
}
}
}
return $result;
}