Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [Java] JDom e xml formattati come html

    Ciao a tutti.

    Devo leggere dei file xml in cui posso incontrare nodi tipo questo ed esportarli in xml

    <Normal>
    Use the <Bold>
    low temperature compartment, </Bold>
    if fitted<Bold>
    , </Bold>
    for making ice cubes, storing frozen and deep-frozen foods and freezing fresh and cooked foods (only in the compartment marked <IMAGE xml:link="simple" href="3gb33010-1.gif" show="embed" actuate="auto"/>
    ); <Bold>
    defrosting is a manual procedure</Bold>
    , is used for the storage of fresh food and beverages.</Normal>


    logicamente il risultato dovrà essere una cosa tipo


    Use the low temperature compartment,if fitted ,
    for making ice cubes, storing frozen and deep-frozen foods and freezing fresh and cooked foods (only in the compartment marked);


    eccetera...

    come posso ottenerlo?

    attualmente utilizzo un metodo ricorsivo che per ogni nodo mi stampa prima il valore di esso, poi quello dei figli...credo vi immaginiate cosa ne esce...comunque così

    Use the if fitted for making ice cubes, storing frozen and deep-frozen foods and freezing fresh and cooked foods (only in the compartment marked);low temperature compartment,,


    un disastro

    aiuti?

    grazie in anticipo, ciao!
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    credo che il metodo sia sbagliato
    <normal> ha 8 nodi
    per te ne ha 5 perchè metti i nodi di testo insieme
    se lo scrivi bene vedrai che funziona

  3. #3
    in che senso metto i nodi di testo insieme? perdonami, non sono molto pratica...io per recuperare quello che è testo uso elemento.getValue(), dovrei utilizzare un metodo differente?

    Se stampo i video i figli di normal con elemento.getChildren() mi visualizza una lista di soli nodi <Bold>...

    grazie
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    dai posta il codice

  5. #5
    grazie

    questa è la funzione ricorsiva, non posto tutto perchè è una classe lunghetta

    public void findChildren(Element elemento){

    String elementName=elemento.getName();
    NodoBean nodoXml=this.checkElement(elemento, elementName);

    if((!nodoXml.getApertura().equals("nothing"))&&(in ternoParagrafo)){
    printout.println(nodoXml.getApertura());
    paragrafo.setTestoHtml(nodoXml.getApertura(), false);
    }

    if((!nodoXml.getValore().equals("nothing"))&&(inte rnoParagrafo)){

    printout.println(nodoXml.getValore());
    paragrafo.setTestoHtml(nodoXml.getValore(), false);
    }

    List elementiFigli=elemento.getChildren();
    Iterator elementiFigliastri=elementiFigli.iterator();

    while(elementiFigliastri.hasNext()){
    Element elementoFiglio=(Element)(elementiFigliastri.next() );
    //System.out.println ("sono "+elemento.getName()+" e sono il padre di "+elementoFiglio.getName());
    this.findChildren(elementoFiglio);

    }

    if((!nodoXml.getChiusura().equals("nothing"))&&(in ternoParagrafo)){
    printout.println(nodoXml.getChiusura());
    paragrafo.setTestoHtml(nodoXml.getChiusura(), false);
    }

    }


    richiamo questa funzione passandole il root element .
    nodoBean è un bean che ha 3 variabili (con relativi metodi set e get), string valore , string apertura , string chiusura...li uso per settare, nel metodo checkelement , il tag di apertura, il valore ed il tag di chiusura della stringa html rappresentativa del nodo.

    grazie mille
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non avendo capito tutto il codice direi che setTestoHtml o getValore hanno un problema
    ti spiego
    codice:
    <node>
      testo1
      <child>
        testo figlio
      </child>
      testo2
    </node>
    node ha 3 figli, due di testo e un nodo
    forse il codice che imposta il valore del nodo è sbagliato

  7. #7
    settestoHtml e getValore sono solo metodi set e get di bean...non fanno nulla..

    fammi capire, rispetto all'xml che mi hai postato, tu come recupereresti i figli testo di <node> ?

    io essenzialmente uso elemento.getValue e mi torna il testo all'interno di <node>, ma tutto insieme, come se nn vedesse i figli...

    grazie
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Perchè quello non è un XML standard... anzi, direi che non è proprio un XML.
    codice:
    <NODO>
       <FOGLIO>valore</FIGLIO>
       <ALTRO_FIGLIO>altrovalore</ALTROFIGLIO>
    </NODO>
    All'interno di NODO possono solo esserci altri TAG nell'XML standard...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    so che nn è esattamente un xml standard...o meglio magari lo è anche ma io è la prima volta che mi trovo a doverlo 'affrontare'

    ad ogni modo devo per forza trovare una soluzione, dato che l'xml viene esportato così da framemaker e non ho la minima idea di come poterlo ottimizzare diversamente

    grazie comunque LeleFT
    Realizzazione siti web
    ____________________________
    how terrible thing is knowledge when it brings no profit to the wise...

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    no in xml puoi mettere testo e nodi nello stesso nodo, perchè il testo è in sostanza un nodo, ma non un tag
    se il dtd ha questo
    <!ELEMENT node ( #PCDATA | child )* >
    è possibile

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.