本文整理汇总了PHP中XMLParser::parseStruct方法的典型用法代码示例。如果您正苦于以下问题:PHP XMLParser::parseStruct方法的具体用法?PHP XMLParser::parseStruct怎么用?PHP XMLParser::parseStruct使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLParser
的用法示例。
在下文中一共展示了XMLParser::parseStruct方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
/**
* Parse an XML file and return data in an array.
* @see xml.XMLParser::parseStruct()
*/
function &parseStruct($file, $tagsToMatch = array())
{
$parser = new XMLParser();
$data =& $parser->parseStruct($file, $tagsToMatch);
$parser->destroy();
return $data;
}
示例2: import
/**
* Save a custom email template file
* @param $filePath string
* @param $journalId int
* @return boolean
*/
function _saveEmailTemplates($filePath, $journal)
{
$this->validate();
import('lib.pkp.classes.xml.XMLParser');
$emailTemplateDao = DAORegistry::getDAO('EmailTemplateDAO');
$xmlParser = new XMLParser();
$struct = $xmlParser->parseStruct($filePath);
$locale = $struct['email_texts'][0]['attributes']['locale'];
$emailTexts = $struct['email_text'];
$subjects = $struct['subject'];
$bodies = $struct['body'];
// check if the parsed xml has the correct structure
if (!$emailTexts || !$subjects || !$bodies) {
return false;
}
$nodeSizes = array(count($emailTexts), count($subjects), count($bodies));
if (count(array_unique($nodeSizes)) > 1) {
return false;
}
$journalId = $journal->getId();
$supportedLocales = $journal->getSupportedLocaleNames();
foreach ($emailTexts as $index => $emailText) {
$emailKey = $emailText['attributes']['key'];
$subject = $subjects[$index]['value'];
$body = $bodies[$index]['value'];
$emailTemplate = $emailTemplateDao->getLocaleEmailTemplate($emailKey, $journalId);
$emailTemplateLocaleData = $emailTemplate->localeData;
// just update supported locales
foreach ($emailTemplateLocaleData as $emailTemplateLocale => $data) {
if (!isset($supportedLocales[$emailTemplateLocale])) {
unset($emailTemplateLocaleData[$emailTemplateLocale]);
}
}
$emailTemplate->localeData = $emailTemplateLocaleData;
$emailTemplate->setAssocType(ASSOC_TYPE_JOURNAL);
$emailTemplate->setAssocId($journalId);
if ($emailTemplate->getCanDisable()) {
$emailTemplate->setEnabled($emailTemplate->getData('enabled'));
}
$emailTemplate->setSubject($locale, $subject);
$emailTemplate->setBody($locale, $body);
if ($emailTemplate->getEmailId() != null) {
$emailTemplateDao->updateLocaleEmailTemplate($emailTemplate);
} else {
$emailTemplateDao->insertLocaleEmailTemplate($emailTemplate);
}
}
return true;
}