useSaveHTML = version_compare(PHP_VERSION, '5.3.6', '>=');
}
/**
* {@inheritdoc}
*/
protected function convertEncoding($data, $encoding = 'UTF-8') {
return FeedsExXmlUtility::convertHtmlEncoding($data, $this->config['source_encoding']);
}
/**
* {@inheritdoc}
*/
protected function prepareDocument(FeedsSource $source, FeedsFetcherResult $fetcher_result) {
$raw = $this->prepareRaw($fetcher_result);
if ($this->config['use_tidy'] && extension_loaded('tidy')) {
$raw = tidy_repair_string($raw, $this->getTidyConfig(), 'utf8');
}
return FeedsExXmlUtility::createHtmlDocument($raw);
}
/**
* {@inheritdoc}
*/
protected function getRaw(DOMNode $node) {
if ($this->useSaveHTML) {
return $node->ownerDocument->saveHTML($node);
}
return $node->ownerDocument->saveXML($node, LIBXML_NOEMPTYTAG);
}
/**
* {@inheritdoc}
*/
protected function getTidyConfig() {
return array(
'merge-divs' => FALSE,
'merge-spans' => FALSE,
'join-styles' => FALSE,
'drop-empty-paras' => FALSE,
'wrap' => 0,
'tidy-mark' => FALSE,
'escape-cdata' => TRUE,
'word-2000' => TRUE,
);
}
}