Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-12-2007, 16:16   #1
xxdavide84xx
Member
 
L'Avatar di xxdavide84xx
 
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
[Java] Come operare ora in questo programma?

Io ho questo programma che mi crea un file .txt e voglio ora analizzarlo e fare ulteriori controlli.

Mi conviene scrivere un nuovo programma, oppure implementare ed aumentare questo già in uso (qui sotto)?


Codice:
import org.w3c.dom.*;

import org.xml.sax.SAXException;

import org.xml.sax.SAXParseException;

import javax.xml.parsers.*;

import java.io.*;



/** DomDocumentCleanParser: versione di DomDocumentParser



    con output dei soli elementi di interesse per il nostro esempio.



    */

public class Dom

{

  public static org.w3c.dom.Node getChild(org.w3c.dom.Node parentNode, int childIndex)

  {

    org.w3c.dom.Node childNode = parentNode.getChildNodes().item(childIndex);

    return childNode;

  }



  /* Array che mappa i tipi di elemento con l'indice int corrispondente



     * alle specifiche per i node types di:



     * Document Object Model (DOM) Level 2 Core Specification



     * (http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113)



     */

  static final String[] typeName = { "none", "Element", "Attr", "Text", "CDATA", "EntityRef", "Entity", "ProcInstr", "Comment", "Document", "DocType", "DocFragment", "Notation" };



  public static void main(String[] args)

  {

    if ( args.length != 1 )

    {

      System.err.println("Usage: java Dom nomefile.xml");

      System.exit(1);

    }

    Dom ddp = new Dom();

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    try

    {

      int cont = 0;

      PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Tesi.txt", false)));

      DocumentBuilder builder = dbf.newDocumentBuilder();

      Document document = builder.parse(new File(args[0]));

      ddp.printNodeInfo(pw, document, cont);

      pw.close();

    }

    catch (FileNotFoundException fnf)

    {

      fnf.printStackTrace();

    }

    catch (SAXException sxe)

    {

      Exception x = sxe;

      if ( sxe.getException() != null )

        x = sxe.getException();

      x.printStackTrace();

    }

    catch (ParserConfigurationException pce)

    {

      pce.printStackTrace();

    }

    catch (IOException ioe)

    {

      ioe.printStackTrace();

    }

  }



  // main

  /** printNodeInfo(Node node)



    *  Metodo che esplora l'albero Dom ricorsivamente e stampa a video



     *  le informazioni sugli elementi.



     */

  private void printNodeInfo(PrintWriter pw, Node currentNode, int cont)

  {

    String sNodeName = currentNode.getNodeName();

    int iNodeType = currentNode.getNodeType();

    String sNodeValue = currentNode.getNodeValue();

    int iChildNumber = currentNode.getChildNodes().getLength();

    NamedNodeMap nnmAttributes = currentNode.getAttributes();

    if ( sNodeName != "#document" && cont != 1 )

      cont = 0;

    if ( sNodeName == "w:styles" || sNodeName == "w:docPr" || sNodeName == "w:body" )

      cont = 1;

    if ( cont == 1 )

    {

      pw.flush();

      pw.println("Nome nodo: " + sNodeName);

      pw.flush();

      pw.println("Tipo nodo: " + typeName[iNodeType]);

      pw.flush();

      if ( sNodeValue != null )

        pw.println("Valore nodo: " + sNodeValue);

      pw.flush();

      if ( iChildNumber != 0 )

        pw.println("Numero figli: " + iChildNumber);

      pw.flush();

      if ( printAttributes(nnmAttributes) != "assenti" )

        pw.println("Attributi: " + printAttributes(nnmAttributes));

      pw.flush();

      pw.println();

      pw.flush();

    }

    //Se non si tratta di una foglia continua l'esplorazione ricorsivamente

    if ( iChildNumber > 0 )

    {

      NodeList nlChilds = currentNode.getChildNodes();

      for ( int iChild = 0; iChild < iChildNumber; iChild++)

      {

        printNodeInfo(pw, nlChilds.item(iChild), cont);

      }

    }

  }



  /** printAttributes(NamedNodeMap nnm)



     *  Metodo utilizzato per la formattazione degli attributi ricavati da



     * un elemento.



     */

  private static String printAttributes(NamedNodeMap nnm)

  {

    String sAttrList = new String();

    if ( nnm != null && nnm.getLength() > 0 )

    {

      for ( int iAttr = 0; iAttr < nnm.getLength(); iAttr++)

      {

        sAttrList += nnm.item(iAttr).getNodeName();

        sAttrList += "=";

        sAttrList += nnm.item(iAttr).getNodeValue();

        sAttrList += "; ";

      }

      return sAttrList;

    }

    else

    {

      return "assenti";

    }

  }

}
In pratica il programma mi controlla un file XML e mi scrive tutti i nodi da style fino in fondo...
Io vorrei controllare che nel corpo del testo vi fossero alcune parole tipo
"bibbliografia", "Introduzione", etc,
ma la cosa più difficile è riuscire a controllare che il testo rispetti Times New Roman 12 o 13, in quanto lo stile viene memorizzato prima con tutte le opzioni e viene solo richiamato nel testo....
qualcuno che conosce un pò anche XML potrebbe aiutarmi, grazie!
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB.
xxdavide84xx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Dreame H15 Mix: la soluzione 7-in-1 per ...
AirPods Pro 3 in forte sconto su Amazon:...
36 offerte Amazon, molte appena partite:...
2 caricatori multipli eccezionali: da 28...
OLED e 360 Hz a un prezzo senza preceden...
Roborock Q10 S5+ a un prezzo molto conve...
Upgrade PC a prezzo ridotto: le migliori...
Sono i 6 smartphone migliori su Amazon: ...
Google Pixel 9a a 361€, mai così ...
Super sconti sugli spazzolini Oral-B, an...
Aspira a 6000Pa, lava bene, costa 139€: ...
Nuove scorte: torna il portatile tuttofa...
Toyota usa giochi e premi per spingere i...
HarmonyOS ha raggiunto la soglia di sopr...
Le offerte Amazon più convenienti...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v