[OJS 3.1.2-1] PubMed - Issue adding keywords

Hi all:

I trying to include keywords in PubMed plugin exported xml but I get an error. Copy the code below:

// Keywords

$supportedLocales = array_keys(AppLocale::getSupportedFormLocales());
$articleKeywords = $submissionKeywordDao->getKeywords($submission->getId(), $supportedLocales);

$objectListNode = $doc->createElement('ObjectList');

foreach ($articleKeywords['en_US'] as $keyword) {
	
	$objNode = $doc->createElement('Object', $keyword);
	$objNode->setAttribute('Type', 'keyword');
	$objectListNode->appendChild($objNode);
	
} // end_foreach

$articleNode->appendChild($objectListNode);

And I get this:

Element Object content does not follow the DTD, expecting (Param)*, got (CDATA)

Element Object content does not follow the DTD, expecting (Param)*, got (CDATA)

Element Object content does not follow the DTD, expecting (Param)*, got (CDATA)

Element Object content does not follow the DTD, expecting (Param)*, got (CDATA)

49

No se pueden convertir los objetos seleccionados
Cannot convert selected objects

Regards,
Diego

Hi @madileweb,

Your change doesn’t follow the PubMed DTD; see e.g. Object.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher:

I realized and completed the missing:

// Keywords
		
$supportedLocales = array_keys(AppLocale::getSupportedFormLocales());
$articleKeywords = $submissionKeywordDao->getKeywords($submission->getId(), $supportedLocales);

$objectListNode = $doc->createElement('ObjectList');

foreach ($articleKeywords['en_US'] as $keyword) {
	
	$objNode = $doc->createElement('Object');
	$objNode->setAttribute('Type', 'keyword');
	$paramNode = $doc->createElement('Param', $keyword);
	$paramNode->setAttribute('Name', 'value');
	$objNode->appendChild($paramNode);
	$objectListNode->appendChild($objNode);
	
} // end_foreach

$articleNode->appendChild($objectListNode);

Thanks for all!

Regards,
Diego

Kindly let me know in which file and line number you are adding this extra code? @madileweb

Hi @Pankaj_Kumar,

Route is /plugins/importexport/pubmed/filter/ArticlePubMedXmlFilter.inc.php.

Line 183 but it may vary.

Regards,
Diego