From cbe7fd21cba778119456fd426026ae72bf49cb1f Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Sat, 19 May 2012 09:23:24 +0200 Subject: [PATCH] rclxml --- src/filters/rclxml | 119 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100755 src/filters/rclxml diff --git a/src/filters/rclxml b/src/filters/rclxml new file mode 100755 index 00000000..62d7846d --- /dev/null +++ b/src/filters/rclxml @@ -0,0 +1,119 @@ +#!/bin/sh + +#================================================================ +# Extract text from a generic XML file (Justus Piater) +#================================================================ + +# set variables +LANG=C ; export LANG +LC_ALL=C ; export LC_ALL +progname="rclxml" +filetype=xml + + +#RECFILTCOMMONCODE +############################################################################## +# !! Leave the previous line unmodified!! Code imported from the +# recfiltcommon file + +# Utility code common to all shell filters. This could be sourced at run +# time, but it's slightly more efficient to include the code in the +# filters at build time (with a sed script). + +# Describe error in a way that can be interpreted by our caller +senderror() +{ + echo RECFILTERROR $* + # Also alert on stderr just in case + echo ":2:$progname::: $*" 1>&2 + exit 1 +} + +iscmd() +{ + cmd=$1 + case $cmd in + */*) + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; + *) + oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done + return 1 ;; + esac +} + +checkcmds() +{ + for cmd in $*;do + if iscmd $cmd + then + a=1 + else + senderror HELPERNOTFOUND $cmd + fi + done +} + +# show help message +if test $# -ne 1 -o "$1" = "--help" +then + echo "Convert a $filetype file to HTML text for Recoll indexing." + echo "Usage: $progname [infile]" + exit 1 +fi + +infile="$1" + +# check the input file existence (may be '-' for stdin) +if test "X$infile" != X- -a ! -f "$infile" +then + senderror INPUTNOSUCHFILE "$infile" +fi + +# protect access to our temp files and directories +umask 77 + +############################################################################## +# !! Leave the following line unmodified ! +#ENDRECFILTCOMMONCODE + +checkcmds xsltproc + +xsltproc --novalid --nonet - "$infile" < + + + + + + + + + + <xsl:value-of select="//*[local-name() = 'title'][1]"/> + + + + + + + + + + + +

+ + +
+
+ + + + + +
+EOF + +exit 0