package XMLBean;
import java.io.*;
import org.apache.xerces.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.helpers.DefaultHandler;
public class XMLReader {
String slash =
"/";
String linbase =
"";
String docbase =
"";
String htmlbase =
"";
int Width = 0;
int Height = 0;
SAX xml =
new SAX();
SAXParser parser =
new SAXParser();
public XMLReader() {
super();
parser.setContentHandler(xml);
parser.setErrorHandler(xml);}
public void setWidth(
int width) {
Width=width;Height=width;}
public void setLinbase(String Path) {
// wegen Fehler in Linux, Path fehlt
linbase=Path;}
public void setDocbase(String Path) {
//System.out.println("req.getRealPath(/)="+Path);
if (Path==
null) {docbase=linbase;}
else if (Path.length()==0) {docbase=linbase;}
else if (Path.charAt(0)==
'/') {docbase=linbase;}
else {docbase=Path;slash=
"\\";}}
public void setHtmlbase(String Path) {
htmlbase=
"http://"+Path+"/";}
public void setHtmlport(String Path) {
if (docbase!=linbase)
htmlbase=Path+
"/";}
public void setFile(String Filename) {
try {
parser.parse(docbase+Filename);}
catch (Exception e) {
System.out.print(e);}}
public String nat(String s) {
if (s!=
null) {
if (s.indexOf(
"ä")>=0) s=s.replaceAll(
"ä",
"ä");
if (s.indexOf(
"ü")>=0) s=s.replaceAll(
"ü",
"ü");
if (s.indexOf(
"ö")>=0) s=s.replaceAll(
"ö",
"ö");
if (s.indexOf(
"ß")>=0) s=s.replaceAll(
"ß",
"ß");
if (s.indexOf(
"Ä")>=0) s=s.replaceAll(
"Ä",
"Ä");
if (s.indexOf(
"Ü")>=0) s=s.replaceAll(
"Ü",
"Ü");
if (s.indexOf(
"Ö")>=0) s=s.replaceAll(
"Ö",
"Ö");}
return s;}
public String prefix(String s) {
final int len=240, maxpara=2;
int lc=0;
final String ret=
"\n";String contd=
" ...";
if (s!=
null) {
int m=s.length();
for (
int i=0;i<len;i++) {
if (i+4<s.length()) {
String p=s.substring(i,i+3).toLowerCase();
String b=s.substring(i,i+4).toLowerCase();
if (p.equals(
"<p>") | b.equals(
"<br>")) {
lc++;
if (lc>=maxpara)
return s.substring(0,i)+contd;}}}
for (
int i=len;i<s.length();i++) {
// return at next space
if ((s.charAt(i)==
' ') | (s.charAt(i)==
'\n'))
return s.substring(0,i)+contd;}
return s.substring(0,m).replaceAll(ret,
" ")+contd;}
else return "";}
public String wrapHead(String s) {
String r=
"";
if (s!=
null)
if (s.length()>0)
r=
"<div class=\"TextBoxHeadline\
">"+s+
"</div>";
return r;}
public String wrapAbstract(String s) {
String r=
"";
if (s!=
null)
if (s.length()>0)
r=
"<div class=\"TextBoxAbstract\
">"+s+
"</div>";
return r;}
public String getOverhead() {
return nat(xml.Overhead);}
public String getHeadline() {
return wrapHead(nat(xml.Headline));}
public String getDate() {
return xml.Date;}
public String getAbstract() {
return wrapAbstract(nat(xml.
Abstract));}
public String getText() {
return nat(xml.Text);}
public String getTextprefix() {
return prefix(nat(xml.Text));}
public String getAuthor() {
return xml.Author;}
public String getPicbig() {
return xml.Picbig;}
public String getPiccredit() {
return xml.Piccredit;}
public String getPicsmall() {
return xml.Picsmall;}
public String getPicbightml() {
if (!xml.Picbig.equals(
"")) {
File f=
new File(docbase+
"Artikel"+slash+xml.Picbig);
if (f.canRead())
return "<div class=\"bImgLeft\
">"
+
"<img src=\""+htmlbase+"Artikel
"+"/
"+xml.Picbig+"\
" width=\""+Width+"\
" height=\""+Height+"\
">"
+
"</div>";
else return "";}
else return "";}
public String getPicsmallhtml() {
if (!xml.Picsmall.equals(
"")) {
File f=
new File(docbase+
"Artikel"+slash+xml.Picsmall);
if (f.canRead())
return "<div class=\"bImgLeft\
">"
+
"<img src=\""+htmlbase+"Artikel
"+"/
"+xml.Picsmall+"\
" width=\""+Width+"\
" height=\""+Height+"\
">"
+
"</div>";
else return "";}
else return "";}
public String getOverheadhtml() {
if (!xml.Overhead.equals(
""))
return "<div class=\"overhead\
" align=\"center\
">"
+
"<p><font color=\"#999999\
"><b>"
+ xml.Overhead
+
"</b></font></p></div>";
else return "";}
public String getHeadlinehtml() {
if (!xml.Headline.equals(
""))
return "<div class=\"TextBoxHeadline\
">"
+ xml.Headline
+
"</div>";
else return "";}
}