Mentre molti degli altri articoli trattano di come estrarre i dati, questo articolo spiega come i dati estratti possono essere perfezionati in modo che rimangano solo le informazioni desiderate. Per fare questo lo speciale Criteria
i metodi vengono utilizzati mentre in tutti i seguenti esempi i dati vengono estratti da una tabella HTML, questi dati possono essere estratti da una varietà di origini diverse purché ciascuna sorgente di div, span, immagini ecc. del contenuto dei dati abbia la stessa lunghezza.
Di seguito sono riportati i dati della tabella che vengono analizzati in questo esempio, questa tabella è composta da quattro colonne titolo, autore, età del libro e status.
titolo | autore | età del libro | status |
---|---|---|---|
Come fare il giardinaggio | John | 5 | Pubblicato il |
Come usare una fotocamera | Sarah | 0 | Incompleto |
Come usare una fotocamera | Sarah | 0 | Incompleto |
L'astronomia è stata facile | Dominic | 1 | In fase di revisione |
Come stirare | Paul | 1 | In fase di revisione |
Come disegnare | Mike | 3 | Pubblicato il |
Come usare un PC | Rachel | 4 | Pubblicato il |
var titles = Page.getTagValues({"position":1,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}}); var authors = Page.getTagValues({"position":2,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}}); var ages = Page.getTagValues({"position":3,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}}); var statuses = Page.getTagValues({"position":4,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}});
Spesso i dati raccolti devono essere perfezionati in modo da avere solo le informazioni di cui hanno bisogno. Questo è dove il Criteria
le funzioni sono utilizzate. Ad esempio, se sono richiesti solo libri pubblicati, è necessario limitare la colonna degli stati sopra a pubblicata e quindi applicare tali modifiche agli altri dati della colonna come mostrato di seguito.
Criteria.create(); statuses = Criteria.equals(statuses, "Published"); titles = Criteria.apply(titles); authors = Criteria.apply(authors); ages = Criteria.apply(ages);
Quando si usa Criteria
metodi per ridurre i dati a cui devono essere applicate tutte le modifiche su una singola colonna alla volta, prima di apply
Il metodo viene utilizzato su qualsiasi altra colonna che deve rimuovere i record corrispondenti. Una volta completato il Criteria.create()
Il metodo deve essere chiamato prima di impostare i criteri per un'altra colonna. È per questo motivo che è consigliabile chiamare il Criteria.create()
prima di qualsiasi altro metodo di criteri.
Nell'esempio la colonna degli stati è stata limitata a includere solo Pubblicato il, quindi utilizzando il Criteria.apply
metodo anche i record corrispondenti nelle altre tre colonne sono stati rimossi per mantenere coerenti tutte le colonne. Ricorda che il metodo apply è utile solo se le diverse colonne contengono lo stesso numero di record.
La critica può anche essere combinata insieme per limitare i dati in più modi. L'esempio seguente limita la colonna relativa all'età dei libri a libri più vecchi di uno ma di meno di cinque anni usando il Criteria.lessThan()
e Criteria.greaterThan()
metodi.
Criteria.create(); ages = Criteria.greaterThan(ages, 1); ages = Criteria.lessThan(ages, 5); titles = Criteria.apply(titles); authors = Criteria.apply(authors); statuses = Criteria.apply(statuses);
A volte ci sono dati duplicati che devono essere rimossi, per rimuovere queste informazioni è possibile utilizzare il Criteria.unique
metodo.
Criteria.create(); titles = Criteria.unique(titles); authors = Criteria.apply(authors); ages = Criteria.apply(ages); statuses = Criteria.apply(statuses);
Ora tutte le righe duplicate basate sulla colonna del titolo verranno rimosse. Il prossimo metodo è il Criteria.remove
metodo. Ciò rimuove gli elementi dalla colonna se tali valori di colonna vengono trovati nel parametro array.
var authorsToRemove = ["Mike","Rachel"]; Criteria.create(); authors = Criteria.remove(authors, authorsToRemove); titles = Criteria.apply(titles); ages = Criteria.apply(ages); statuses = Criteria.apply(statuses);
Qui tutti i record che equivalgono a Mike e Rachel nella colonna degli autori vengono rimossi, il metodo apply quindi rimuove i record corrispondenti dalle altre colonne.