当前位置: 首页>>代码示例>>PHP>>正文


PHP XMLParser::serialize方法代码示例

本文整理汇总了PHP中XMLParser::serialize方法的典型用法代码示例。如果您正苦于以下问题:PHP XMLParser::serialize方法的具体用法?PHP XMLParser::serialize怎么用?PHP XMLParser::serialize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XMLParser的用法示例。


在下文中一共展示了XMLParser::serialize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: smwf_ti_connectTL

/**
 *
 * @param $tlID the ID of the Transport Layer
 * @param $dalID
 * @param $source_input an XML structure of the given source inputs
 * @param $givenImportSetName the given import set name (String)
 * @param $givenInputPol an XML structure with the given input policy
 * @param $mappingPage The name of the mapping article
 * @param $givenConflictPol Boolean: overwrite=true, preserve=false
 * @param $runBot run the bot???
 *
 * @return $result an XML structure
 */
function smwf_ti_connectTL($tlID, $dalID, $source_input, $givenImportSetName, $givenInputPol, $mappingPage, $givenConflictPol = true, $runBot, $termImportName = null, $updatePolicy = "", $edit = false, $createOnly = false)
{
    global $smwgDIIP, $wgOut;
    require_once $smwgDIIP . '/specials/TermImport/SMW_WIL.php';
    require_once $smwgDIIP . '/specials/TermImport/SMW_XMLParser.php';
    $wil = new WIL();
    $tlModules = $wil->getTLModules();
    //TODO Errorhandling!!!
    if (!$tlID) {
        // Error,keine TLID angegeben!!!
    }
    $res = $wil->connectTL($tlID, $tlModules);
    $dalModules = $wil->getDALModules();
    //return if no dalID is given
    if (!$dalID) {
        $tlModules = str_replace("<?xml version=\"1.0\"?>", "", $tlModules);
        $dalModules = str_replace("<?xml version=\"1.0\"?>", "", $dalModules);
        return '<result>' . $tlModules . $dalModules . '</result>';
    }
    $res = $wil->connectDAL($dalID, $dalModules);
    $source = $wil->getSourceSpecification();
    // return if no source is given
    if ((!$source_input || $source_input == '') && $res) {
        $tlModules = str_replace("<?xml version=\"1.0\"?>", "", $tlModules);
        $dalModules = str_replace("<?xml version=\"1.0\"?>", "", $dalModules);
        $source = str_replace("<?xml version=\"1.0\"?>", "", $source);
        return '<result>' . $tlModules . $dalModules . $source . '</result>';
    }
    if (isset($source_input)) {
        $source_xml = new SimpleXMLElement($source_input);
        $source_xml_alt = new SimpleXMLElement($source);
        foreach ($source_xml->children() as $second_gen) {
            $tag = $second_gen->getName();
            $value = (string) $second_gen;
            $result = $source_xml_alt->xpath($tag);
            //Change the old tag
            $source_xml_alt->{$tag} = $value;
        }
        //get the xml-string
        $source_result = $source_xml_alt->asXML();
    }
    $importSets = $wil->getImportSets($source_result);
    $p = new XMLParser($importSets);
    $result = $p->parse();
    if ($result == TRUE && $givenImportSetName && $givenImportSetName != '' && $givenImportSetName != 'ALL') {
        $p->removeAllParentElements('NAME', $givenImportSetName);
    }
    if ($result == TRUE && $givenImportSetName && $givenImportSetName == 'ALL') {
        $importSets = '<?xml version="1.0"?>' . '<IMPORTSETS XMLNS="http://www.ontoprise.de/smwplus#">' . '</IMPORTSETS>';
    } else {
        $importSets = $p->serialize();
    }
    $properties = $wil->getProperties($source_result, $importSets);
    if (!$givenInputPol || $givenInputPol == '') {
        // no input policy defined, create an empty one for getting the term-information
        $givenInputPol = '<?xml version="1.0"?>' . "\n" . '<InputPolicy xmlns="http://www.ontoprise.de/smwplus#">' . "\n" . '<terms>' . "\n" . '	<regex></regex>' . "\n" . '	<term></term>' . "\n" . '</terms>' . "\n" . '<properties>' . "\n" . '	<property>articleName</property>' . "\n" . '</properties>' . "\n" . '</InputPolicy>' . "\n";
    }
    $terms = $wil->getTermList($source_result, $importSets, $givenInputPol);
    if ($runBot == 0) {
        // prepare XML strings for return...
        $xmlResult = '<result>' . $tlModules . $dalModules . $source_result . $importSets . $properties . $terms . '</result>';
        $xmlResult = '<?xml version="1.0"?>' . str_replace('<?xml version="1.0"?>', "", $xmlResult);
        return $xmlResult;
    } elseif ($runBot == 1) {
        //do the Import!
        $title = Title::newFromText($mappingPage);
        if (!$title->exists()) {
            return '<?xml version="1.0"?>
	 			<ReturnValue xmlns="http://www.ontoprise.de/smwplus#">
	 		    <value>falseMap</value>
	 		    <message>' . wfMsg('smw_ti_nomappingpage') . '</message>
	 			</ReturnValue >';
        }
        $moduleConfig = '<?xml version="1.0"?>' . "\n" . '<ModuleConfiguration xmlns="http://www.ontoprise.de/smwplus#">' . "\n" . '  <TLModules>' . "\n" . '    <Module>' . "\n" . '        <id>' . $tlID . '</id>' . "\n" . '    </Module>' . "\n" . '  </TLModules >' . "\n" . '  <DALModules>' . "\n" . '    <Module>' . "\n" . '        <id>' . $dalID . '</id>' . "\n" . '    </Module>' . "\n" . '  </DALModules >' . "\n" . '</ModuleConfiguration>';
        $mappingPolicy = '<?xml version="1.0"?>' . "\n" . '<MappingPolicy xmlns="http://www.ontoprise.de/smwplus#">' . "\n" . '	<page>' . $mappingPage . '</page>' . "\n" . '</MappingPolicy >';
        if ($givenConflictPol && $givenConflictPol != '') {
            $conflictPolicy = '<?xml version="1.0"?>' . "\n" . '<ConflictPolicy xmlns="http://www.ontoprise.de/smwplus#">' . "\n" . '	<overwriteExistingTerms>' . $givenConflictPol . '</overwriteExistingTerms>' . "\n" . '</ConflictPolicy >';
        } else {
            //Error!no conflict policy given... is it possible with <select>?!?
        }
        //todo: error handling
        if ($updatePolicy == 0 || $updatePolicy == "") {
            $updatePolicy = "<once/>";
        } else {
            $updatePolicy = "<maxAge value=\"" . $updatePolicy . "\"/>";
        }
        $updatePolicy = '<?xml version="1.0"?>' . "\n" . '<UpdatePolicy xmlns="http://www.ontoprise.de/smwplus#">' . "\n" . $updatePolicy . '</UpdatePolicy>';
//.........这里部分代码省略.........
开发者ID:seedbank,项目名称:old-repo,代码行数:101,代码来源:SMW_CL.php


注:本文中的XMLParser::serialize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。