29 $this->_nodeMap = $nodeMap;
41 $xpath = new \DOMXPath(
$source);
42 $this->_metadata = [];
45 foreach ($xpath->query(implode(
' | ', $this->_nodeMap)) as $node) {
60 protected function _convertNode(\DOMNode $node,
$path =
'')
63 if ($node->nodeType == XML_ELEMENT_NODE) {
64 if ($node->hasAttributes()) {
65 $backendModel = $node->attributes->getNamedItem(
'backend_model');
67 $this->_metadata[
$path] = [
'backendModel' => $backendModel->nodeValue];
72 foreach ($node->childNodes as $childNode) {
73 $childrenData = $this->_convertNode($childNode, (
$path ?
$path .
'/' :
'') . $childNode->nodeName);
74 if ($childrenData ==
null) {
77 if (is_array($childrenData)) {
78 $nodeData = array_merge($nodeData, $childrenData);
80 $nodeData = $childrenData;
83 if (is_array($nodeData) && empty($nodeData)) {
86 $output[$node->nodeName] = $nodeData;
87 }
elseif ($node->nodeType == XML_CDATA_SECTION_NODE || $node->nodeType == XML_TEXT_NODE && trim(
91 return $node->nodeValue;
elseif(isset( $params[ 'redirect_parent']))
__construct(array $nodeMap=[])