List:Commits« Previous MessageNext Message »
From:jon Date:November 1 2007 5:10pm
Subject:svn commit - mysqldoc@docsrva: r8474 - trunk/ndbapi
View as plain text  
Author: jstephens
Date: 2007-11-01 18:10:44 +0100 (Thu, 01 Nov 2007)
New Revision: 8474

Log:

Debugged script (hopefully), added a --debug switch and some comments...



Modified:
   trunk/ndbapi/fix-indexes


Modified: trunk/ndbapi/fix-indexes
===================================================================
--- trunk/ndbapi/fix-indexes	2007-11-01 15:32:22 UTC (rev 8473)
+++ trunk/ndbapi/fix-indexes	2007-11-01 17:10:44 UTC (rev 8474)
Changed blocks: 1, Lines Added: 71, Lines Deleted: 24; 2886 bytes

@@ -1,44 +1,91 @@
 #!/usr/bin/php
 
 <?php
+  # fix-indexes - Jon Stephens (jon@stripped)
+  # Version 1.0 - 01 November 2007
 
+  # Function: Traverses all *.xml files in the directory in which the
+  # script is invoked and removes all <literal> elements contained
+  # within <primary> and <secondary> elements found in those files
+
+  # Purpose: Clean up sub-optimal indexing in DocBook XML files
+
+  # Requires: PHP 5 with DOM and SimpleXML extensions
+  # (tested with PHP 5.2.0 on SuSE Linux 10.2)
+
+  # Invoke with --debug for some debugging output
+
+  $__DEBUG__ = $argc > 0 && $argv[1] == '--debug' ? TRUE : FALSE;
+
+  function remove_tags($el)
+{
+  global $__DEBUG__;
+
+  $tag = $el->tagName;
+
+  if($__DEBUG__)
+    echo "Processing $tag element; ";
+
+  $simple = simpleXML_import_DOM($el);
+  $xml = $simple->asXML();
+
+  if($__DEBUG__)
+    echo "original text in element: $xml;";
+
+  $text = preg_replace('/<\/?(literal|' . $tag . ')>/', '', $xml);
+
+  if($__DEBUG__)
+    echo " text after processing: $text\n";
+
+  $owner = $el->ownerDocument;
+
+  $text_node = $owner->createTextNode($text);
+
+  $new_el = $owner->createElement($tag);
+  $new_el->appendChild($text_node);
+
+  return $new_el;
+}
+
+
   $files = scandir(".");
-  
+
+  $files_processed = 0;
+  $tags_processed = 0;
+
   foreach($files as $file)
   {
     if(is_file($file) && strpos($file, '.xml'))
     {
+      if($__DEBUG__)
+        echo "\nProcessing $file... ";
+
+      $files_processed++;
+
       $doc = DOMDocument::load($file);
-      
+
       $primaries = $doc->getElementsByTagName('primary');
       $secondaries = $doc->getElementsByTagName('secondary');
-      
+
+      $tags = count($primaries) + count($secondaries);
+      $tags_processed += $tags;
+
+      if($__DEBUG__)
+        echo "$tags tags to be processed in this file...\n";
+
       $index_sets = array($primaries, $secondaries);
-      
+
       foreach($index_sets as $indexes)
         foreach($indexes as $index)
-          $index->parentNode->replaceChild(remove_tags($index), $index);    
-    
+          $index->parentNode->replaceChild(remove_tags($index), $index);
+
+      $doc->save($file);
+
       unset($doc);
     }
   }
-  
-  function remove_tags($el)
-  {
-    $tag = $el->tagName;
-    $simple = simpleXML_import_DOM($el);
-    $text = preg_replace('/<\/?(literal|' . $tag . ')>/', '', $simple->asXML());
-    
-    echo "$text\n";
-    
-    $owner = $el->ownerDocument;
-    
-    $text_node = $owner->createTextNode($text);
-    
-    $new_el = $owner->createElement($tag);
-    $new_el->appendChild($text_node);
-    
-    return $new_el;
-  }
 
+  echo "\nProcessed $tags_processed tags
+      in $files_processed XML files.\nDone.\n";
+
 ?>
\ No newline at end of file


Thread
svn commit - mysqldoc@docsrva: r8474 - trunk/ndbapijon1 Nov