xxdavide84xx
23-01-2008, 15:27
Io ho questo file ParserDom.java
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.swing.*;
public class ParserDOM
{
Vector styleNodes = new Vector();
Vector styleObjects = new Vector();
Vector bodyNodes = new Vector();
Vector bodyObjects = new Vector();
public ParserDOM()
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try
{
builder = factory.newDocumentBuilder();
}
catch (ParserConfigurationException e)
{
e.printStackTrace();
System.exit(1);
}
Document document = null;
try
{
JFileChooser fc = new JFileChooser();
fc.setApproveButtonText("Apri");
//decidi cosa mettere nel pulsante
fc.setDialogTitle("Seleziona XML");
//imposti nome JFileCHooser
fc.setFileFilter(new XMLFilter());
// imposti filtro .xml
int value = fc.showOpenDialog(null);
if ( value == JFileChooser.APPROVE_OPTION )
{
File f = fc.getSelectedFile();
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Verifica_tesi.txt", false)));
document = builder.parse(f);
findStyleNodes(document);
createStyleObjects();
Based_On();
printStyles(pw);
findBodyNodes(document);
createBodyObjects();
printBody(pw);
controlli();
pw.close();
try {
String nomeFile = "Verifica_tesi.txt";
Runtime rt = Runtime.getRuntime() ;
Process proc;
proc = rt.exec("cmd /C start "+nomeFile);
InputStream inp = proc .getInputStream() ;
OutputStream outp = proc .getOutputStream ();
InputStream errp = proc .getErrorStream();
} catch(Exception e) {
e.printStackTrace();
}
}
if ( value == JFileChooser.CANCEL_OPTION )
{
System.out.println("Hai premuto il tasto annulla");
}
if ( value == JFileChooser.ERROR_OPTION )
{
System.out.println("ERRORE");
}
System.exit(0);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
private void findStyleNodes(Node startingNode)
{
NodeList childNodes = startingNode.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node actualNode = childNodes.item(i);
if ( isStyleNode(actualNode) )
styleNodes.addElement(actualNode);
if ( actualNode.hasChildNodes() )
findStyleNodes(actualNode);
}
}
private boolean isStyleNode(Node node)
{
return node.getNodeName().equals("w:style");
}
private void createStyleObjects()
{
for ( int i = 0; i < styleNodes.size(); i++)
{
Node styleNode = (Node)styleNodes.elementAt(i);
Style style = new Style();
style.name = getAttributeValue(styleNode, "w:styleId");
Node basedNode = getChildNode(styleNode, "w:basedOn");
if ( basedNode != null )
style.based = getAttributeValue(basedNode, "w:val");
Node pPrNode = getChildNode(styleNode, "w:pPr");
if ( pPrNode != null )
{
Node jcNode = getChildNode(pPrNode, "w:jc");
if ( jcNode != null )
style.jc = getAttributeValue(jcNode, "w:val");
}
Node paragraphNode = getChildNode(styleNode, "w:rPr");
if ( paragraphNode != null )
{
Node fontNode = getChildNode(paragraphNode, "wx:font");
if ( fontNode != null )
style.font = getAttributeValue(fontNode, "wx:val");
else
{
Node rfontNode = getChildNode(paragraphNode, "w:rFonts");
if ( rfontNode != null )
style.font = getAttributeValue(rfontNode, "w:cs");
}
Node sizeNode = getChildNode(paragraphNode, "w:sz");
if ( sizeNode != null )
style.size = getAttributeValue(sizeNode, "w:val");
Node grassettoNode = getChildNode(paragraphNode, "w:b");
if ( grassettoNode != null )
style.grassetto = getAttributeValue(grassettoNode, "w:val");
Node italicoNode = getChildNode(paragraphNode, "w:i");
if ( italicoNode != null )
style.italico = getAttributeValue(italicoNode, "w:val");
Node sottolineatoNode = getChildNode(paragraphNode, "w:u");
if ( sottolineatoNode != null )
style.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
}
styleObjects.addElement(style);
}
}
private String getAttributeValue(Node node, String attributeName)
{
NamedNodeMap attributes = node.getAttributes();
if ( attributes == null )
return "";
Node item = attributes.getNamedItem(attributeName);
if ( item == null )
return "";
return item.getNodeValue();
}
private Node getChildNode(Node node, String nodeName)
{
NodeList childNodes = node.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node childNode = childNodes.item(i);
if ( childNode.getNodeName().equals(nodeName) )
return childNode;
}
return null;
}
private void printStyles(PrintWriter pw)
{
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
//System.out.println(style);
pw.println(style);
}
}
public static void main(String args[])
{
new ParserDOM();
}
class Style
{
String name;
String based;
String jc;
String font;
String size;
String grassetto;
String italico;
String sottolineato;
public String toString()
{
StringBuffer buffer = new StringBuffer();
if ( name != null )
{
buffer.append("Stile: " + name + "\n");
if ( based != null )
buffer.append(" Basato su: " + based + "\n");
if ( jc != null )
buffer.append(" Jc: " + jc + "\n");
if ( font != null )
buffer.append(" Font: " + font + "\n");
if ( size != null )
buffer.append(" Dimensione: " + size + "\n");
if ( grassetto != null )
buffer.append(" Grassetto " + grassetto + "\n");
if ( italico != null )
buffer.append(" Italico " + italico + "\n");
if ( sottolineato != null )
buffer.append(" Sottolineato: " + sottolineato + "\n");
}
return buffer.toString();
}
}
private void findBodyNodes(Node startingNode)
{
NodeList childNodes = startingNode.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node actualNode = childNodes.item(i);
if ( isBodyNode(actualNode) )
bodyNodes.addElement(actualNode);
if ( actualNode.hasChildNodes() )
findBodyNodes(actualNode);
}
}
private boolean isBodyNode(Node node)
{
return node.getNodeName().equals("w:p");
}
private void createBodyObjects()
{
String stile = new String();
String jc = new String();
for ( int i = 0; i < bodyNodes.size(); i++)
{
Node bodyNode = (Node)bodyNodes.elementAt(i);
stile = null;
jc = null;
Node paragraphNode = getChildNode(bodyNode, "w:pPr");
if ( paragraphNode != null )
{
Node stileNode = getChildNode(paragraphNode, "w:pStyle");
if ( stileNode != null )
stile = getAttributeValue(stileNode, "w:val");
Node jcNode = getChildNode(paragraphNode, "w:jc");
if ( jcNode != null )
jc = getAttributeValue(jcNode, "w:val");
}
NodeList pNode = getAllChildNode(bodyNode, "w:r");
for ( int j = 0; j < pNode.getLength(); j++)
{
Body body = new Body();
body.stile = stile;
body.jc = jc;
Node rNode = (Node)pNode.item(j);
Node rPrNode = getChildNode(rNode, "w:rPr");
if ( rPrNode != null )
{
Node rstileNode = getChildNode(rPrNode, "w:rStyle");
if ( rstileNode != null )
body.stile = getAttributeValue(rstileNode, "w:val");
Node fontNode = getChildNode(rPrNode, "wx:font");
if ( fontNode != null )
body.font = getAttributeValue(fontNode, "wx:val");
Node grassettoNode = getChildNode(rPrNode, "w:b");
if ( grassettoNode != null )
body.grassetto = getAttributeValue(grassettoNode, "w:val");
Node italicoNode = getChildNode(rPrNode, "w:i");
if ( italicoNode != null )
body.italico = getAttributeValue(italicoNode, "w:val");
Node sottolineatoNode = getChildNode(rPrNode, "w:u");
if ( sottolineatoNode != null )
body.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
Node sizeNode = getChildNode(rPrNode, "w:sz");
if ( sizeNode != null )
body.size = getAttributeValue(sizeNode, "w:val");
}
Node pictNode = getChildNode(rNode, "w:pict");
if ( pictNode != null )
{
Node shapeNode = getChildNode(pictNode, "v:shape");
if ( shapeNode != null )
{
Node imagedataNode = getChildNode(shapeNode, "v:imagedata");
if ( imagedataNode != null )
{
body.titolopict = getAttributeValue(imagedataNode, "o:title");
body.formatopict = getAttributeValue(imagedataNode, "src");
}
}
}
Node wtNode = getChildNode(rNode, "w:t");
if ( wtNode != null )
{
Node testoNode = getChildNode(wtNode, "#text");
if ( testoNode != null )
body.testo = testoNode.getNodeValue();
}
bodyObjects.addElement(body);
}
}
}
private void printBody(PrintWriter pw)
{
for ( int i = 0; i < bodyObjects.size(); i++)
{
Body body = (Body)bodyObjects.elementAt(i);
//System.out.println(body);
pw.println(body);
}
}
private void Based_On()
{
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
if ( style.size == null )
{
if ( style.based != null )
{
String Based = style.based;
for ( int j = 0; j < styleObjects.size(); j++)
{
Style style1 = (Style)styleObjects.elementAt(j);
String name = style1.name;
if ( Based.equals(name) )
style.size = style1.size;
}
}
}
}
}
private void controlli()
{
for ( int i = 0; i < bodyObjects.size(); i++)
{
Body body = (Body)bodyObjects.elementAt(i);
if ( body.testo != null )
{
if ( body.testo.equalsIgnoreCase("Alma Mater Studiorum - Università degli Studi di Bologna") || body.testo.equalsIgnoreCase("Sede di Cesena") ||
body.testo.equalsIgnoreCase("FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI") || body.testo.equalsIgnoreCase("Corso di Studi in Scienze dell’Informazione") )
System.out.println("OK Intestazione iniziale");
if ( body.testo.equalsIgnoreCase("Tesi di Laurea in:") || body.testo.equalsIgnoreCase("Tesi di Laurea in") )
System.out.println("OK materia");
if ( body.testo.equalsIgnoreCase("relatore:") || body.testo.equalsIgnoreCase("relatore") )
System.out.println("OK relatore");
if ( body.testo.equalsIgnoreCase("presentata da:") || body.testo.equalsIgnoreCase("presentata da") )
System.out.println("OK presentata");
if ( body.testo.equalsIgnoreCase("corelaotre") || body.testo.equalsIgnoreCase("correlatore") || body.testo.equalsIgnoreCase("corelaotre:") || body.testo.equalsIgnoreCase("correlatore:") )
System.out.println("OK correlatore");
if ( body.testo.equalsIgnoreCase("sessione i") || body.testo.equalsIgnoreCase("sessione 1") )
System.out.println("OK Prima sessione");
if ( body.testo.equalsIgnoreCase("sessione ii") || body.testo.equalsIgnoreCase("sessione 2") )
System.out.println("OK Seconda sessione");
if ( body.testo.equalsIgnoreCase("sessione iii") || body.testo.equalsIgnoreCase("sessione 3") )
System.out.println("OK Terza sessione");
if ( body.testo.equalsIgnoreCase("indice") || body.testo.equalsIgnoreCase("ndice") )
System.out.println("OK INDICE");
if ( body.testo.equalsIgnoreCase("introduzione") || body.testo.equalsIgnoreCase("ntroduzione") )
System.out.println("OK INTRODUZIONE");
if ( body.testo.equalsIgnoreCase("conclusioni") || body.testo.equalsIgnoreCase("onclusioni") || body.testo.equalsIgnoreCase("conclusione") || body.testo.equalsIgnoreCase("onclusione") )
System.out.println("OK CONCLUSIONI");
if ( body.testo.equalsIgnoreCase("bibliografia") || body.testo.equalsIgnoreCase("ibliografia") || body.testo.equalsIgnoreCase("bibbliografia") || body.testo.equalsIgnoreCase("ibbliografia") )
System.out.println("OK BIBLIOGRAFIA");
if ( body.jc == null && body.font == null && body.size == null )
{
ArrayList buffer1 = stili();
for ( int j = 0; j < buffer1.size(); j++)
{
if ( body.stile.equals(buffer1.get(j)) )
System.out.println("Testo rispetta vincoli");
}
}
else
{
if ( body.font != null )
System.out.println("Font diverso: " + body.font + " dimensione diversa: " + body.size + " contiene: " + body.testo);
}
}
}
System.out.println("WARNING.....");
}
class Body
{
String stile;
String jc;
String font;
String grassetto;
String italico;
String sottolineato;
String size;
String testo;
String titolopict;
String formatopict;
public String toString()
{
StringBuffer buffer = new StringBuffer();
if ( stile != null )
buffer.append("Stile body: " + stile + "\n");
if ( jc != null )
buffer.append(" Jc body: " + jc + "\n");
if ( font != null )
buffer.append(" Font body: " + font + "\n");
if ( size != null )
buffer.append(" Dimensione body: " + size + "\n");
if ( grassetto != null )
buffer.append(" Grassetto body " + grassetto + "\n");
if ( italico != null )
buffer.append(" Italico body " + italico + "\n");
if ( sottolineato != null )
buffer.append(" Sottolineato body: " + sottolineato + "\n");
if ( testo != null )
buffer.append(" Testo body: " + testo + "\n");
if ( titolopict != null )
buffer.append(" Nome immagine body: " + titolopict + "\n");
if ( formatopict != null )
buffer.append(" Formato immagine body: " + formatopict + "\n");
return buffer.toString();
}
}
private NodeList getAllChildNode(Node node, String nodeName)
{
ArrayNodeList arrNodeList = new ArrayNodeList();
NodeList childNodes = node.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node childNode = childNodes.item(i);
if ( childNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && childNode.getNodeName().equals(nodeName) )
{
arrNodeList.add(childNode);
}
}
return arrNodeList;
}
class ArrayNodeList implements NodeList
{
private ArrayList nodesArray = new ArrayList();
public void add(Node n)
{
nodesArray.add(n);
}
public int getLength()
{
return nodesArray.size();
}
public Node item(int index)
{
try
{
return (Node)nodesArray.get(index);
}
catch (IndexOutOfBoundsException e)
{
return null;
}
}
}
private ArrayList stili()
{
String style1 = new String();
ArrayList buffer1 = new ArrayList();
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
if ( style.jc != null && style.jc.equals("both") )
if ( style.font != null && style.font.equals("Times New Roman") )
if ( style.size != null )
if ( style.size.equals("24") || style.size.equals("26") )
if ( style.grassetto == null && style.italico == null && style.sottolineato == null )
{
style1 = style.name;
buffer1.add(style1);
}
}
return buffer1;
}
}
Funziona correttamente da una Dos o tramite un editor Java, però io vorrei renderlo eseguibile in internet?
Come devo modificarlo per fare ciò???
Devo creare un JSP con un pulsante che quando lo spingo faccia il medesimo lavoro di questo programma...è possibile???
import javax.swing.filechooser.*;
public class XMLFilter extends FileFilter {
public String getDescription() {
return "file xml";
}
public boolean accept(java.io.File file) {
return file.isDirectory() || file.getName().endsWith(".xml");
}
}
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.swing.*;
public class ParserDOM
{
Vector styleNodes = new Vector();
Vector styleObjects = new Vector();
Vector bodyNodes = new Vector();
Vector bodyObjects = new Vector();
public ParserDOM()
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try
{
builder = factory.newDocumentBuilder();
}
catch (ParserConfigurationException e)
{
e.printStackTrace();
System.exit(1);
}
Document document = null;
try
{
JFileChooser fc = new JFileChooser();
fc.setApproveButtonText("Apri");
//decidi cosa mettere nel pulsante
fc.setDialogTitle("Seleziona XML");
//imposti nome JFileCHooser
fc.setFileFilter(new XMLFilter());
// imposti filtro .xml
int value = fc.showOpenDialog(null);
if ( value == JFileChooser.APPROVE_OPTION )
{
File f = fc.getSelectedFile();
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Verifica_tesi.txt", false)));
document = builder.parse(f);
findStyleNodes(document);
createStyleObjects();
Based_On();
printStyles(pw);
findBodyNodes(document);
createBodyObjects();
printBody(pw);
controlli();
pw.close();
try {
String nomeFile = "Verifica_tesi.txt";
Runtime rt = Runtime.getRuntime() ;
Process proc;
proc = rt.exec("cmd /C start "+nomeFile);
InputStream inp = proc .getInputStream() ;
OutputStream outp = proc .getOutputStream ();
InputStream errp = proc .getErrorStream();
} catch(Exception e) {
e.printStackTrace();
}
}
if ( value == JFileChooser.CANCEL_OPTION )
{
System.out.println("Hai premuto il tasto annulla");
}
if ( value == JFileChooser.ERROR_OPTION )
{
System.out.println("ERRORE");
}
System.exit(0);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
private void findStyleNodes(Node startingNode)
{
NodeList childNodes = startingNode.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node actualNode = childNodes.item(i);
if ( isStyleNode(actualNode) )
styleNodes.addElement(actualNode);
if ( actualNode.hasChildNodes() )
findStyleNodes(actualNode);
}
}
private boolean isStyleNode(Node node)
{
return node.getNodeName().equals("w:style");
}
private void createStyleObjects()
{
for ( int i = 0; i < styleNodes.size(); i++)
{
Node styleNode = (Node)styleNodes.elementAt(i);
Style style = new Style();
style.name = getAttributeValue(styleNode, "w:styleId");
Node basedNode = getChildNode(styleNode, "w:basedOn");
if ( basedNode != null )
style.based = getAttributeValue(basedNode, "w:val");
Node pPrNode = getChildNode(styleNode, "w:pPr");
if ( pPrNode != null )
{
Node jcNode = getChildNode(pPrNode, "w:jc");
if ( jcNode != null )
style.jc = getAttributeValue(jcNode, "w:val");
}
Node paragraphNode = getChildNode(styleNode, "w:rPr");
if ( paragraphNode != null )
{
Node fontNode = getChildNode(paragraphNode, "wx:font");
if ( fontNode != null )
style.font = getAttributeValue(fontNode, "wx:val");
else
{
Node rfontNode = getChildNode(paragraphNode, "w:rFonts");
if ( rfontNode != null )
style.font = getAttributeValue(rfontNode, "w:cs");
}
Node sizeNode = getChildNode(paragraphNode, "w:sz");
if ( sizeNode != null )
style.size = getAttributeValue(sizeNode, "w:val");
Node grassettoNode = getChildNode(paragraphNode, "w:b");
if ( grassettoNode != null )
style.grassetto = getAttributeValue(grassettoNode, "w:val");
Node italicoNode = getChildNode(paragraphNode, "w:i");
if ( italicoNode != null )
style.italico = getAttributeValue(italicoNode, "w:val");
Node sottolineatoNode = getChildNode(paragraphNode, "w:u");
if ( sottolineatoNode != null )
style.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
}
styleObjects.addElement(style);
}
}
private String getAttributeValue(Node node, String attributeName)
{
NamedNodeMap attributes = node.getAttributes();
if ( attributes == null )
return "";
Node item = attributes.getNamedItem(attributeName);
if ( item == null )
return "";
return item.getNodeValue();
}
private Node getChildNode(Node node, String nodeName)
{
NodeList childNodes = node.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node childNode = childNodes.item(i);
if ( childNode.getNodeName().equals(nodeName) )
return childNode;
}
return null;
}
private void printStyles(PrintWriter pw)
{
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
//System.out.println(style);
pw.println(style);
}
}
public static void main(String args[])
{
new ParserDOM();
}
class Style
{
String name;
String based;
String jc;
String font;
String size;
String grassetto;
String italico;
String sottolineato;
public String toString()
{
StringBuffer buffer = new StringBuffer();
if ( name != null )
{
buffer.append("Stile: " + name + "\n");
if ( based != null )
buffer.append(" Basato su: " + based + "\n");
if ( jc != null )
buffer.append(" Jc: " + jc + "\n");
if ( font != null )
buffer.append(" Font: " + font + "\n");
if ( size != null )
buffer.append(" Dimensione: " + size + "\n");
if ( grassetto != null )
buffer.append(" Grassetto " + grassetto + "\n");
if ( italico != null )
buffer.append(" Italico " + italico + "\n");
if ( sottolineato != null )
buffer.append(" Sottolineato: " + sottolineato + "\n");
}
return buffer.toString();
}
}
private void findBodyNodes(Node startingNode)
{
NodeList childNodes = startingNode.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node actualNode = childNodes.item(i);
if ( isBodyNode(actualNode) )
bodyNodes.addElement(actualNode);
if ( actualNode.hasChildNodes() )
findBodyNodes(actualNode);
}
}
private boolean isBodyNode(Node node)
{
return node.getNodeName().equals("w:p");
}
private void createBodyObjects()
{
String stile = new String();
String jc = new String();
for ( int i = 0; i < bodyNodes.size(); i++)
{
Node bodyNode = (Node)bodyNodes.elementAt(i);
stile = null;
jc = null;
Node paragraphNode = getChildNode(bodyNode, "w:pPr");
if ( paragraphNode != null )
{
Node stileNode = getChildNode(paragraphNode, "w:pStyle");
if ( stileNode != null )
stile = getAttributeValue(stileNode, "w:val");
Node jcNode = getChildNode(paragraphNode, "w:jc");
if ( jcNode != null )
jc = getAttributeValue(jcNode, "w:val");
}
NodeList pNode = getAllChildNode(bodyNode, "w:r");
for ( int j = 0; j < pNode.getLength(); j++)
{
Body body = new Body();
body.stile = stile;
body.jc = jc;
Node rNode = (Node)pNode.item(j);
Node rPrNode = getChildNode(rNode, "w:rPr");
if ( rPrNode != null )
{
Node rstileNode = getChildNode(rPrNode, "w:rStyle");
if ( rstileNode != null )
body.stile = getAttributeValue(rstileNode, "w:val");
Node fontNode = getChildNode(rPrNode, "wx:font");
if ( fontNode != null )
body.font = getAttributeValue(fontNode, "wx:val");
Node grassettoNode = getChildNode(rPrNode, "w:b");
if ( grassettoNode != null )
body.grassetto = getAttributeValue(grassettoNode, "w:val");
Node italicoNode = getChildNode(rPrNode, "w:i");
if ( italicoNode != null )
body.italico = getAttributeValue(italicoNode, "w:val");
Node sottolineatoNode = getChildNode(rPrNode, "w:u");
if ( sottolineatoNode != null )
body.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
Node sizeNode = getChildNode(rPrNode, "w:sz");
if ( sizeNode != null )
body.size = getAttributeValue(sizeNode, "w:val");
}
Node pictNode = getChildNode(rNode, "w:pict");
if ( pictNode != null )
{
Node shapeNode = getChildNode(pictNode, "v:shape");
if ( shapeNode != null )
{
Node imagedataNode = getChildNode(shapeNode, "v:imagedata");
if ( imagedataNode != null )
{
body.titolopict = getAttributeValue(imagedataNode, "o:title");
body.formatopict = getAttributeValue(imagedataNode, "src");
}
}
}
Node wtNode = getChildNode(rNode, "w:t");
if ( wtNode != null )
{
Node testoNode = getChildNode(wtNode, "#text");
if ( testoNode != null )
body.testo = testoNode.getNodeValue();
}
bodyObjects.addElement(body);
}
}
}
private void printBody(PrintWriter pw)
{
for ( int i = 0; i < bodyObjects.size(); i++)
{
Body body = (Body)bodyObjects.elementAt(i);
//System.out.println(body);
pw.println(body);
}
}
private void Based_On()
{
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
if ( style.size == null )
{
if ( style.based != null )
{
String Based = style.based;
for ( int j = 0; j < styleObjects.size(); j++)
{
Style style1 = (Style)styleObjects.elementAt(j);
String name = style1.name;
if ( Based.equals(name) )
style.size = style1.size;
}
}
}
}
}
private void controlli()
{
for ( int i = 0; i < bodyObjects.size(); i++)
{
Body body = (Body)bodyObjects.elementAt(i);
if ( body.testo != null )
{
if ( body.testo.equalsIgnoreCase("Alma Mater Studiorum - Università degli Studi di Bologna") || body.testo.equalsIgnoreCase("Sede di Cesena") ||
body.testo.equalsIgnoreCase("FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI") || body.testo.equalsIgnoreCase("Corso di Studi in Scienze dell’Informazione") )
System.out.println("OK Intestazione iniziale");
if ( body.testo.equalsIgnoreCase("Tesi di Laurea in:") || body.testo.equalsIgnoreCase("Tesi di Laurea in") )
System.out.println("OK materia");
if ( body.testo.equalsIgnoreCase("relatore:") || body.testo.equalsIgnoreCase("relatore") )
System.out.println("OK relatore");
if ( body.testo.equalsIgnoreCase("presentata da:") || body.testo.equalsIgnoreCase("presentata da") )
System.out.println("OK presentata");
if ( body.testo.equalsIgnoreCase("corelaotre") || body.testo.equalsIgnoreCase("correlatore") || body.testo.equalsIgnoreCase("corelaotre:") || body.testo.equalsIgnoreCase("correlatore:") )
System.out.println("OK correlatore");
if ( body.testo.equalsIgnoreCase("sessione i") || body.testo.equalsIgnoreCase("sessione 1") )
System.out.println("OK Prima sessione");
if ( body.testo.equalsIgnoreCase("sessione ii") || body.testo.equalsIgnoreCase("sessione 2") )
System.out.println("OK Seconda sessione");
if ( body.testo.equalsIgnoreCase("sessione iii") || body.testo.equalsIgnoreCase("sessione 3") )
System.out.println("OK Terza sessione");
if ( body.testo.equalsIgnoreCase("indice") || body.testo.equalsIgnoreCase("ndice") )
System.out.println("OK INDICE");
if ( body.testo.equalsIgnoreCase("introduzione") || body.testo.equalsIgnoreCase("ntroduzione") )
System.out.println("OK INTRODUZIONE");
if ( body.testo.equalsIgnoreCase("conclusioni") || body.testo.equalsIgnoreCase("onclusioni") || body.testo.equalsIgnoreCase("conclusione") || body.testo.equalsIgnoreCase("onclusione") )
System.out.println("OK CONCLUSIONI");
if ( body.testo.equalsIgnoreCase("bibliografia") || body.testo.equalsIgnoreCase("ibliografia") || body.testo.equalsIgnoreCase("bibbliografia") || body.testo.equalsIgnoreCase("ibbliografia") )
System.out.println("OK BIBLIOGRAFIA");
if ( body.jc == null && body.font == null && body.size == null )
{
ArrayList buffer1 = stili();
for ( int j = 0; j < buffer1.size(); j++)
{
if ( body.stile.equals(buffer1.get(j)) )
System.out.println("Testo rispetta vincoli");
}
}
else
{
if ( body.font != null )
System.out.println("Font diverso: " + body.font + " dimensione diversa: " + body.size + " contiene: " + body.testo);
}
}
}
System.out.println("WARNING.....");
}
class Body
{
String stile;
String jc;
String font;
String grassetto;
String italico;
String sottolineato;
String size;
String testo;
String titolopict;
String formatopict;
public String toString()
{
StringBuffer buffer = new StringBuffer();
if ( stile != null )
buffer.append("Stile body: " + stile + "\n");
if ( jc != null )
buffer.append(" Jc body: " + jc + "\n");
if ( font != null )
buffer.append(" Font body: " + font + "\n");
if ( size != null )
buffer.append(" Dimensione body: " + size + "\n");
if ( grassetto != null )
buffer.append(" Grassetto body " + grassetto + "\n");
if ( italico != null )
buffer.append(" Italico body " + italico + "\n");
if ( sottolineato != null )
buffer.append(" Sottolineato body: " + sottolineato + "\n");
if ( testo != null )
buffer.append(" Testo body: " + testo + "\n");
if ( titolopict != null )
buffer.append(" Nome immagine body: " + titolopict + "\n");
if ( formatopict != null )
buffer.append(" Formato immagine body: " + formatopict + "\n");
return buffer.toString();
}
}
private NodeList getAllChildNode(Node node, String nodeName)
{
ArrayNodeList arrNodeList = new ArrayNodeList();
NodeList childNodes = node.getChildNodes();
for ( int i = 0; i < childNodes.getLength(); i++)
{
Node childNode = childNodes.item(i);
if ( childNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && childNode.getNodeName().equals(nodeName) )
{
arrNodeList.add(childNode);
}
}
return arrNodeList;
}
class ArrayNodeList implements NodeList
{
private ArrayList nodesArray = new ArrayList();
public void add(Node n)
{
nodesArray.add(n);
}
public int getLength()
{
return nodesArray.size();
}
public Node item(int index)
{
try
{
return (Node)nodesArray.get(index);
}
catch (IndexOutOfBoundsException e)
{
return null;
}
}
}
private ArrayList stili()
{
String style1 = new String();
ArrayList buffer1 = new ArrayList();
for ( int i = 0; i < styleObjects.size(); i++)
{
Style style = (Style)styleObjects.elementAt(i);
if ( style.jc != null && style.jc.equals("both") )
if ( style.font != null && style.font.equals("Times New Roman") )
if ( style.size != null )
if ( style.size.equals("24") || style.size.equals("26") )
if ( style.grassetto == null && style.italico == null && style.sottolineato == null )
{
style1 = style.name;
buffer1.add(style1);
}
}
return buffer1;
}
}
Funziona correttamente da una Dos o tramite un editor Java, però io vorrei renderlo eseguibile in internet?
Come devo modificarlo per fare ciò???
Devo creare un JSP con un pulsante che quando lo spingo faccia il medesimo lavoro di questo programma...è possibile???
import javax.swing.filechooser.*;
public class XMLFilter extends FileFilter {
public String getDescription() {
return "file xml";
}
public boolean accept(java.io.File file) {
return file.isDirectory() || file.getName().endsWith(".xml");
}
}