Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-01-2008, 18:32   #1
xxdavide84xx
Member
 
L'Avatar di xxdavide84xx
 
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
[JAVA] Problema con vector.addElement(Object)

Salve.

Io ho una
Codice:
class Body  {
    String stile;

    String jc;

    String grassetto;

    String italico;

    String testo;

    public String toString() {
      StringBuffer buffer = new StringBuffer();
      if ( stile != null )
        buffer.append("Stile body: " + stile + "\n");
      if ( jc != null )
        if ( grassetto != null )
          buffer.append(" Grassetto body " + grassetto + "\n");
      if ( italico != null )
        buffer.append(" Italico body " + italico + "\n");
      buffer.append(" Testo body: " + testo + "\n");
      return buffer.toString();
    }
  }
con questo funzione il problema è bodyObjects.addElement(body); che mi memorizza sempre lo stesso NODO...
cerco di spiegarmi meglio io per es ho:
w:p
w:rPr 1
w:r ciao
w:r Gino
w:p
w:rPr 2
w:r come
w:r stai
w:r ?
e al posto che restituirmi come sopra il mio programma restituisce:
w:p
w:rPr 1 w:r ciao
w:rPr 1 w:r ciao
w:p
w:rPr 2 w:r come
w:rPr 2 w:r come
w:rPr 2 w:r come
il pezzo in cui penso sia il problema:
Codice:
  private void createBodyObjects() {
    for ( int i = 0; i < bodyNodes.size(); i++) {
      Node bodyNode = (Node)bodyNodes.elementAt(i);
      Body body = new Body();
      Node paragraphNode = getChildNode(bodyNode, "w:pPr");
      if ( paragraphNode != null ) {
        Node stileNode = getChildNode(paragraphNode, "w:pStyle");
        if ( stileNode != null )
          body.stile = getAttributeValue(stileNode, "w:val");
        Node jcNode = getChildNode(paragraphNode, "w:jc");
        if ( jcNode != null )
          body.jc = getAttributeValue(jcNode, "w:val");
     					 }
      NodeList pNode = getAllChildNode(bodyNode, "w:r");
      for ( int j = 0; j < pNode.getLength(); j++) {
        Node rNode = (Node)pNode.item(j);
        Node rPrNode = getChildNode(rNode, "w:rPr");
        if ( rPrNode != null ) {
          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 testoNode = getChildNode(rNode, "w:t");
        if ( testoNode != null ) {
          Node testoNode1 = getChildNode(testoNode, "#text");
          if ( testoNode1 != null )
            body.testo = testoNode1.getNodeValue();
        } 
        bodyObjects.addElement(body);
      }
    }
  }
questo il programma completo:
Codice:
import java.io.*;
import java.util.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class aa  {

  Vector bodyNodes = new Vector();

  Vector bodyObjects = new Vector();

  public aa() {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = null;
    try {
      builder = factory.newDocumentBuilder();
    }
    catch (ParserConfigurationException e) {
      e.printStackTrace();
      System.exit(1);
    }
    Document document = null;
    try {
      PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Mercoledì 161.txt", false)));
      document = builder.parse(new File("C:\\Documents and settings\\Administrator\\Desktop\\DAVIDE\\Dom\\tesi.xml"));
      findBodyNodes(document);
      createBodyObjects();
      printBody(pw);
      pw.close();
    }
    catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }
  }

  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 aa();
  }

  class Style  {
    String name;

    String based;

    String pstile;

    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 ( pstile != null )
          buffer.append(" pStyle: " + pstile + "\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() {
    for ( int i = 0; i < bodyNodes.size(); i++) {
      Node bodyNode = (Node)bodyNodes.elementAt(i);
      Body body = new Body();
      Node paragraphNode = getChildNode(bodyNode, "w:pPr");
      if ( paragraphNode != null ) {
        Node stileNode = getChildNode(paragraphNode, "w:pStyle");
        if ( stileNode != null )
          body.stile = getAttributeValue(stileNode, "w:val");
        Node jcNode = getChildNode(paragraphNode, "w:jc");
        if ( jcNode != null )
          body.jc = getAttributeValue(jcNode, "w:val");
     					 }
      NodeList pNode = getAllChildNode(bodyNode, "w:r");
      for ( int j = 0; j < pNode.getLength(); j++) {
        Node rNode = (Node)pNode.item(j);
        Node rPrNode = getChildNode(rNode, "w:rPr");
        if ( rPrNode != null ) {
          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 testoNode = getChildNode(rNode, "w:t");
        if ( testoNode != null ) {
          Node testoNode1 = getChildNode(testoNode, "#text");
          if ( testoNode1 != null )
            body.testo = testoNode1.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);
    }
  }

  class Body  {
    String stile;

    String jc;

    String grassetto;

    String italico;

    String testo;

    public String toString() {
      StringBuffer buffer = new StringBuffer();
      if ( stile != null )
        buffer.append("Stile body: " + stile + "\n");
      if ( jc != null )
        if ( grassetto != null )
          buffer.append(" Grassetto body " + grassetto + "\n");
      if ( italico != null )
        buffer.append(" Italico body " + italico + "\n");
      buffer.append(" Testo body: " + testo + "\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;
      }
    }
  }
}
__________________
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
Old 16-01-2008, 23:24   #2
xxdavide84xx
Member
 
L'Avatar di xxdavide84xx
 
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
Quello di cui non riesco a capacitarmi è che se scrivo:
System.out.println("A" + body.stile);
System.out.println("B" + body.jc);
System.out.println("C" + body.grassetto);
System.out.println("D" + body.italico);
System.out.println("E" + body.testo);
mi da i valori corretti, ma se metto al posto dei System.out.println bodyObjects.addElement(body);

mi viene preso per TOT di volte sempre lo stesso nodo contentente gli stessi stile,jc,grassetto,italico,testo....

Mi chiedo cosa cambi concettualmente tra il primo e il secondo caso....
__________________
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


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Boom clamoroso per questo piccolo produt...
Amazon Luna saluta gli store di terze pa...
Windows Update non sarà più un incubo: M...
Stampante HP con Wi-Fi e 3 mesi di inchi...
Metro 2039 potrebbe essere il nuovo capi...
Call of Duty: Modern Warfare 4 l'uscita ...
Mega risparmi su Amazon Haul fino a mezz...
Il Blu-ray è davvero morto? Due a...
OpenAI punta sulla pubblicità in ...
Gmail, arriva la crittografia end-to-end...
Molotov contro la casa di Altman: il CEO...
Tesla ottiene l'approvazione del sistema...
Monopattini elettrici: il MIT rassicura ...
Roborock Saros 20 va subito in offerta: ...
Epic Games lavora ad un gioco sparatutto...
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: 12:25.


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