Funktionen | |
const std::string | readFile (std::string fileName, std::ostream &errorStream) |
Liefert den Inhalt einer Text-Datei. Mehr... | |
bool | changeDir (std::string dirName) |
Wechselt das Verzeichnis. Mehr... | |
const std::string | getWorkingDir () |
Liefert den Pfad des aktuellen Verzeichnisses. Mehr... | |
const std::string | getXmlFilename (std::string para) |
Liefert den Pfad einer XML-Datei gemäß der SfleX-Verzeichnis Hierachie. Mehr... | |
const std::string | getXslFilename (std::string para1, std::string para2) |
Liefert den Pfad einer XSL-Datei gemäß der SfleX-Verzeichnis Hierachie. Mehr... | |
const std::string | quoteSingle (std::string theString) |
Umgibt einen String mit einfachen Anführungsstrichen ('). Mehr... | |
const std::string | stripWhiteSpace (std::string theString) |
Löscht Whitespace-Zeichen aus einem String. Mehr... |
In diesem Namensbereich werden einige nützliche Funktionen definiert.
|
Wechselt das Verzeichnis.
00057 { 00058 const int f = chdir( dirName.c_str() ); 00059 bool r = ( f == 0 ); 00060 return r; 00061 } |
|
Liefert den Pfad des aktuellen Verzeichnisses.
00067 { 00068 char dir[100]; 00069 return getcwd(dir, 100); 00070 } |
|
Liefert den Pfad einer XML-Datei gemäß der SfleX-Verzeichnis Hierachie.
Dabei gilt folgende Aufbau:
00076 { 00077 using std::string; 00078 00079 SflexConfig *conf = SflexConfig::getConfig(); 00080 00081 const string pool = conf->getValue( "sflex", "pool" ); 00082 const string dir = conf->getValue( pool, "root" ); 00083 const string praefix = conf->getValue( pool, "praefix" ); 00084 const string suffix = conf->getValue( pool, "suffix" ); 00085 00086 bool isEmpty = ( pool.empty() || 00087 dir.empty() || 00088 praefix.empty() || 00089 suffix.empty() ); 00090 if ( isEmpty ) { 00091 return ""; 00092 } 00093 00094 return dir + "/xml/" + praefix + para + suffix; 00095 } |
|
Liefert den Pfad einer XSL-Datei gemäß der SfleX-Verzeichnis Hierachie.
Dabei gilt folgende Aufbau:
00102 { 00103 using std::string; 00104 00105 SflexConfig *conf = SflexConfig::getConfig(); 00106 00107 const string mod = conf->getValue( "sflex", "module" ); 00108 const string pool = conf->getValue( "sflex", "pool" ); 00109 const string dir = conf->getValue( pool, "root" ); 00110 const string praefix = conf->getValue( pool, "praefix" ); 00111 const string suffix = conf->getValue( pool, "suffix" ); 00112 00113 bool isEmpty = ( mod.empty() || 00114 pool.empty() || 00115 dir.empty() || 00116 praefix.empty() || 00117 suffix.empty() ); 00118 if ( isEmpty ) { 00119 return ""; 00120 } 00121 00122 return dir + "/xsl/" + mod + "/" + para1 + "_" + para2 + ".xsl"; 00123 } |
|
Umgibt einen String mit einfachen Anführungsstrichen ('). Dies wird z.B. dann benötigt, wenn der Wert eines String-Parameters in einem XSLT Stylesheet gesetzt werden soll.
00129 { 00130 return "'" + theString + "'"; 00131 } |
|
Liefert den Inhalt einer Text-Datei.
00034 { 00035 std::ifstream in; 00036 std::ostringstream content; 00037 00038 in.open( fileName.c_str(), ios::in ); 00039 00040 if ( !in ) { 00041 errorStream << "Helper: Datei " 00042 << fileName 00043 << " konnte nicht geöffnet werden!\n"; 00044 return ""; 00045 } 00046 00047 content << in.rdbuf(); 00048 in.close(); 00049 00050 return content.str(); 00051 } |
|
Löscht Whitespace-Zeichen aus einem String. Dazu zählen zwei aufeinanderfolgende Leerzeichen ' ', das Tabulator-Zeichen '\t' und das Newline-Zeichen '\n'. Das vereinfacht das Erstellen von Stylesheets, bei denen es in der Ausgabe auf solche Zeichen ankommt (Plain Text, LaTeX). So wird sicher gestellt, daß die Whitespace-Zeichen nur durch das Stylesheet hinzugefügt werden und nicht noch von der XML-Datei her übrig bleiben (etwa durch Einrückungen).
00135 { 00136 unsigned int whiteSpacePos = theString.find( "\n" ); 00137 while( whiteSpacePos < string::npos ) { 00138 theString.replace( whiteSpacePos, 1, "" ); 00139 whiteSpacePos = theString.find( "\n", whiteSpacePos + 1 ); 00140 } 00141 00142 whiteSpacePos = theString.find( "\t" ); 00143 while( whiteSpacePos < string::npos ) { 00144 theString.replace( whiteSpacePos, 1, "" ); 00145 whiteSpacePos = theString.find( "\t", whiteSpacePos + 1 ); 00146 } 00147 00148 whiteSpacePos = theString.find( " " ); 00149 while( whiteSpacePos < string::npos ) { 00150 theString.replace( whiteSpacePos, 2, "" ); 00151 whiteSpacePos = theString.find( " ", whiteSpacePos ); 00152 } 00153 00154 return theString; 00155 } |