Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
XpathType.php
Go to the documentation of this file.
1 <?php
7 
9 
13 class XpathType implements ParserInterface
14 {
19  public function parse(array $data, \DOMNode $node)
20  {
21  $result = null;
22  $type = isset($data['type']) ? $data['type'] : null;
23  if (!$type) {
24  throw new \InvalidArgumentException('Type attribute are expected.');
25  }
26  unset($data['type']);
27  $domXPath = new \DOMXPath($node->ownerDocument);
28  $nodeList = $domXPath->query(trim($data['value']), $node);
29  if ($nodeList->length == 1) {
30  $nodeItem = $nodeList->item(0);
31  $data['xsi:type'] = $type;
32 
33  $nodeValue = trim($nodeItem->nodeValue);
34  if ($nodeValue !== '') {
35  $data['value'] = $nodeValue;
36  } else {
37  unset($data['value']);
38  }
39 
40  $result = $data;
41  }
42 
43  return $result;
44  }
45 }
parse(array $data, \DOMNode $node)
Definition: XpathType.php:19
$type
Definition: item.phtml:13