protected function parseNode(DOMElement $ir, DOMElement $node)
	{
		// XSL elements are parsed by the corresponding parseXsl* method
		if ($node->namespaceURI === self::XMLNS_XSL)
		{
			$methodName = 'parseXsl' . str_replace(' ', '', ucwords(str_replace('-', ' ', $node->localName)));
			if (!method_exists($this, $methodName))
			{
				throw new RuntimeException("Element '" . $node->nodeName . "' is not supported");
			}

			return $this->$methodName($ir, $node);
		}

		// Create an <element/> with a name attribute equal to given node's name
		$element = $this->appendElement($ir, 'element');
		$element->setAttribute('name', $node->nodeName);

		// Append an <attribute/> element for each namespace declaration
		$xpath = new DOMXPath($node->ownerDocument);
		foreach ($xpath->query('namespace::*', $node) as $ns)
		{
			if ($node->hasAttribute($ns->nodeName))
			{
				$irAttribute = $this->appendElement($element, 'attribute');
				$irAttribute->setAttribute('name', $ns->nodeName);
				$this->appendLiteralOutput($irAttribute, $ns->nodeValue);
			}
		}

		// Append an <attribute/> element for each of this node's attribute
		foreach ($node->attributes as $attribute)
		{
			$irAttribute = $this->appendElement($element, 'attribute');
			$irAttribute->setAttribute('name', $attribute->nodeName);

			// Append an <output/> element to represent the attribute's value
			$this->appendAVT($irAttribute, $attribute->value);
		}

		// Parse the content of this node
		$this->parseChildren($element, $node);
	}
protected function parseNode(DOMElement $ir, DOMElement $node)
	{
		// XSL elements are parsed by the corresponding parseXsl* method
		if ($node->namespaceURI === self::XMLNS_XSL)
		{
			$methodName = 'parseXsl' . str_replace(' ', '', ucwords(str_replace('-', ' ', $node->localName)));
			if (!method_exists($this, $methodName))
			{
				throw new RuntimeException("Element '" . $node->nodeName . "' is not supported");
			}

			return $this->$methodName($ir, $node);
		}

		// Create an <element/> with a name attribute equal to given node's name
		$element = $this->appendElement($ir, 'element');
		$element->setAttribute('name', $node->nodeName);

		// Append an <attribute/> element for each namespace declaration
		$xpath = new DOMXPath($node->ownerDocument);
		foreach ($xpath->query('namespace::*', $node) as $ns)
		{
			if ($node->hasAttribute($ns->nodeName))
			{
				$irAttribute = $this->appendElement($element, 'attribute');
				$irAttribute->setAttribute('name', $ns->nodeName);
				$this->appendLiteralOutput($irAttribute, $ns->nodeValue);
			}
		}

		// Append an <attribute/> element for each of this node's attribute
		foreach ($node->attributes as $attribute)
		{
			$irAttribute = $this->appendElement($element, 'attribute');
			$irAttribute->setAttribute('name', $attribute->nodeName);

			// Append an <output/> element to represent the attribute's value
			$this->appendAVT($irAttribute, $attribute->value);
		}

		// Parse the content of this node
		$this->parseChildren($element, $node);
	}
protected function parseNode ( DOMElement $ ir , DOMElement $ node ) { // XSL elements are parsed by the corresponding parseXsl* method if ( $ node -> namespaceURI === self :: XMLNS_XSL ) { $ methodName = 'parseXsl' . str_replace ( ' ' , '' , ucwords ( str_replace ( '-' , ' ' , $ node -> localName ) ) ) ; if ( ! method_exists ( $ this , $ methodName ) ) { throw new RuntimeException ( "Element '" . $ node -> nodeName . "' is not supported" ) ; } return $ this -> $ methodName ( $ ir , $ node ) ; } // Create an <element/> with a name attribute equal to given node's name $ element = $ this -> appendElement ( $ ir , 'element' ) ; $ element -> setAttribute ( 'name' , $ node -> nodeName ) ; // Append an <attribute/> element for each namespace declaration $ xpath = new DOMXPath ( $ node -> ownerDocument ) ; foreach ( $ xpath -> query ( 'namespace::*' , $ node ) as $ ns ) { if ( $ node -> hasAttribute ( $ ns -> nodeName ) ) { $ irAttribute = $ this -> appendElement ( $ element , 'attribute' ) ; $ irAttribute -> setAttribute ( 'name' , $ ns -> nodeName ) ; $ this -> appendLiteralOutput ( $ irAttribute , $ ns -> nodeValue ) ; } } // Append an <attribute/> element for each of this node's attribute foreach ( $ node -> attributes as $ attribute ) { $ irAttribute = $ this -> appendElement ( $ element , 'attribute' ) ; $ irAttribute -> setAttribute ( 'name' , $ attribute -> nodeName ) ; // Append an <output/> element to represent the attribute's value $ this -> appendAVT ( $ irAttribute , $ attribute -> value ) ; } // Parse the content of this node $ this -> parseChildren ( $ element , $ node ) ; }
Parse a given node into the internal representation

@param  DOMElement $ir   Node in the internal representation that represents the node's parent
@param  DOMElement $node Node to parse
@return void
Parse a given node into the internal representation