/**
  * Get the layout's XML structure
  *
  * This is cached because it's expensive to load for each ESI'd block
  *
  * @return Mage_Core_Model_Layout_Element|SimpleXMLElement
  */
 public function getLayoutXml()
 {
     Varien_Profiler::start('turpentine::helper::esi::getLayoutXml');
     if (is_null($this->_layoutXml)) {
         if ($useCache = Mage::app()->useCache('layout')) {
             $cacheKey = $this->getFileLayoutUpdatesXmlCacheKey();
             $this->_layoutXml = simplexml_load_string(Mage::app()->loadCache($cacheKey));
         }
         // this check is redundant if the layout cache is disabled
         if (!$this->_layoutXml) {
             $this->_layoutXml = $this->_loadLayoutXml();
             if ($useCache) {
                 Mage::app()->saveCache($this->_layoutXml->asXML(), $cacheKey, array('LAYOUT_GENERAL_CACHE_TAG'));
             }
         }
     }
     Varien_Profiler::stop('turpentine::helper::esi::getLayoutXml');
     return $this->_layoutXml;
 }