コード例 #1
0
ファイル: ConfigTest.php プロジェクト: genkgo/xsl
 public function testExcludePrefixes()
 {
     $config = new Config();
     $this->assertFalse($config->shouldExcludeResultPrefixes());
     $config->excludeResultPrefixes();
     $this->assertTrue($config->shouldExcludeResultPrefixes());
 }
コード例 #2
0
ファイル: Transformer.php プロジェクト: genkgo/xsl
 /**
  * @param DOMDocument $document
  */
 public function transform(DOMDocument $document)
 {
     $root = $document->documentElement;
     $namespaces = FetchNamespacesFromNode::fetch($document->documentElement);
     $xslPrefix = array_search(XslTransformations::URI, $namespaces);
     $excludePrefixes = preg_split('/\\s/', $root->getAttribute('exclude-result-prefixes'));
     $excludePrefixes[] = 'php';
     $excludePrefixes[] = 'xs';
     if (in_array('#all', $excludePrefixes) === true || $this->config->shouldExcludeResultPrefixes()) {
         $excludePrefixes = array_merge($excludePrefixes, array_keys($namespaces));
         $excludePrefixes = array_filter($excludePrefixes, function ($prefix) {
             return $prefix !== '#all';
         });
     }
     $excludePrefixes = array_unique($excludePrefixes);
     $root->setAttribute('xmlns:php', 'http://php.net/xsl');
     $root->setAttribute('xmlns:xs', XmlSchema::URI);
     $root->setAttribute('exclude-result-prefixes', implode(' ', $excludePrefixes));
     $this->transformElements($document, $xslPrefix);
     $this->transformAttributes($document, $xslPrefix);
 }