Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Framework x-path

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    19

    Framework x-path

    Ciao a tutti

    Volevo sapere se qualcuno era a conoscenza di come funziona il framework XPath e se poteva aiutarmi rispondendomi alla domanda che da giorni è diventata il mio incubo

    E' possibile fare una ricerca con delle condizioni (dinamiche*) che mi faccia ritornare un array di oggetti già filtrato???

    (*)Mi serve mettere queste condizioni perchè la ricerca riguarda veramente un casino di roba e quindi avrebbe molti casi verificati se non ci fossero e farebbe diventare il processo assai lungo, inoltre ho definito le condizioni "dinamiche" perchè il numero delle condizioni dipende da cosa mi valorizza l'utente durante la sua ricerca


    Grazie a tutti quelli che mi risponderanno ciaoc ciao
    sandruu

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Framework x-path

    Originariamente inviato da sandruu
    Volevo sapere se qualcuno era a conoscenza di come funziona il framework XPath
    Innanzitutto XPath non è un framework ..... è un linguaggio con lo specifico obiettivo di indirizzare e localizzare parti di un documento XML.

    Originariamente inviato da sandruu
    E' possibile fare una ricerca con delle condizioni (dinamiche*) che mi faccia ritornare un array di oggetti già filtrato???
    E poi bisogna vedere cosa intendi usare ... JAXP? Da JAXP 1.3 esiste un set di API dedicato a XPath (package javax.xml.xpath).
    E da quello che so puoi passare delle "espressioni" XPath con normali stringhe.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    19
    ok...grazie mille...già ne so di più...ma che tu sapia è possibiloe mettere una sola condizione o anche più di una?....non è che riesci a farmi un esempio????...grazie mille ciao ciao
    sandruu

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Esempio completo di uso di XPath con le API di JAXP.

    persone.xml
    codice:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <persone>
      <persona nome="Mario" cognome="Rossi" annoNascita="1952"/>
      <persona nome="Roberta" cognome="Rossi" annoNascita="1935"/>
      <persona nome="Carlo" cognome="Verdi" annoNascita="1975"/>
      <persona nome="Giulio" cognome="Bianchi" annoNascita="1945"/>
      <persona nome="Enrica" cognome="Rossi" annoNascita="1957"/>
    </persone>
    codice:
    import java.io.*;
    import javax.xml.xpath.*;
    import org.xml.sax.*;
    import org.w3c.dom.*;
    
    public class Prova {
        public static void main(String[] args) {
            try {
                XPathFactory factory = XPathFactory.newInstance();
                XPath xPath = factory.newXPath();
    
                String espressione = "/persone/persona[@cognome='Rossi'][@annoNascita>1950]";
    
                InputSource is = new InputSource(new FileReader("persone.xml"));
    
                Object result = xPath.evaluate(espressione, is, XPathConstants.NODESET);
    
                NodeList list = (NodeList) result;
    
                for (int i = 0; i < list.getLength(); i++) {
                    Element elem = (Element) list.item(i);
    
                    System.out.println(elem.getAttribute("nome"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    La espressione XPath prende tutti i 'persona' sotto 'persone' e tramite i due predicati sceglie solo i nodi in cui l'attributo cognome è "Rossi" e l'attributo annoNascita è maggiore di 1950.

    Stampa:
    codice:
    Mario
    Enrica
    Ma non stampa Roberta perché il secondo predicato non lo prende.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    19
    grazie mille ...mi sei stato molto utile...ciao ciao
    sandruu

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 © 2025 vBulletin Solutions, Inc. All rights reserved.