本文整理汇总了PHP中XMLParser::removeAllParentElements方法的典型用法代码示例。如果您正苦于以下问题:PHP XMLParser::removeAllParentElements方法的具体用法?PHP XMLParser::removeAllParentElements怎么用?PHP XMLParser::removeAllParentElements使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLParser
的用法示例。
在下文中一共展示了XMLParser::removeAllParentElements方法的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>';
//.........这里部分代码省略.........