2013-11-06 9 views
1

Я пытаюсь извлечь RDFa из HTML строку с помощью СМ2, но у меня возникают следующие ошибки:Получение ошибки при попытке извлечь RDFa из HTML строку с помощью СМ2

Undefined offset: 0 in /Applications/MAMP/htdocs/p-dpa/wp/addons/arc2/extractors/ARC2_PoshRdfExtractor.php on line 75 

Вот код, который я использование:

$aString = ' 
<span vocab="http://schema.org/" typeof="Document"> 
<a property="url" href="http://www.w3.org/TR/rdfa-primer/"> 
<span property="title">RDFa 1.1 Primer</span></a>. 
</span>'; 

// Extracting RDFa from HTML 
$config = array('auto_extract' => 0); 
$parser = ARC2::getSemHTMLParser(); 
$parser->parse($aString); 
$parser->extractRDF('rdfa'); 

$triples = $parser->getTriples(); 
$rdfxml = $parser->toRDFXML($triples); 

print_r($rdfxml); 

Любая идея, что я делаю неправильно?

ответ

2

Хорошо, похоже, я использовал неправильный способ разбора.

$aString = ' 
<span vocab="http://schema.org/" typeof="Document"> 
<a property="url" href="http://www.w3.org/TR/rdfa-primer/"> 
<span property="title">RDFa 1.1 Primer</span></a>. 
</span>'; 

// Extracting RDFa from HTML 
$config = array('auto_extract' => 0); 
$parser = ARC2::getSemHTMLParser(); 
$base = 'http://example.com'; 
$parser->parse($base, $aString); 
$parser->extractRDF('rdfa'); 



$triples = $parser->getTriples(); 
$rdfxml = $parser->toRDFXML($triples); 

print_r($rdfxml); 
1

Я бы не рекомендовал ARC2 для разбора RDFa, вместо этого используйте EasyRDF 0.8 (в бета-версии). Даже если EasyRdf все еще находится в состоянии бета-тестирования, его парсер RDFa более надежный, чем ARC2, и передает более 95% тестового набора RDFa.

Заканчивать мастер филиал в https://github.com/njh/easyrdf и попробовать его на http://easyrdf-converter.aelius.com/

+0

Спасибо, есть ли пример код из разбора HTML строки я могу взглянуть на? – lorussian

+1

вы можете посмотреть, как мы это делаем в Drupal 8: http://drupalcode.org/project/drupal.git/blob/refs/heads/8.x:/core/modules/rdf/lib/ Drupal/ТТО/тесты/CommentAttributesTest.php # L117 – scor