È possibile combinare selettori XPath e CSS?

4

Sono appena passati attraverso XPath .

Sono curioso di questo. Perché esiste un modo diverso per selezionare i tag in XPath e CSS (selettori).

Perché non c'è un modo comune in XPath e CSS?

    
posta rgksugan 18.10.2011 - 13:44
fonte

3 risposte

4

Il CSS non è progettato per essere usato come selettore. Lo scopo è contrassegnare elementi simili nel markup, in modo che possano essere stilizzati nello stesso modo attraverso il documento. Poiché jQuery (e altri) è anche legato allo stile e la funzionalità è spesso associata a elementi simili nel markup, i selettori CSS sono diventati comuni in quell'arena.

Se ciò non lo spiega, immagina come dovrebbe essere un foglio di stile XPath. Forse qualcosa del genere:

/html/body/div/table/tr/td[3]/div {
    background-color: #800;
}

Ora, se aggiungi una colonna alla tabella, o aggiungi un div nella struttura, o magari ridefinisci il primo div usando HTML5 < article > tag, devi andare e ridefinire il percorso del tuo stile.

Oppure, al contrario, immagina di dover inserire un tag CSS su tutto, solo per poterlo trovare. Che PITA sarebbe.

    
risposta data 18.10.2011 - 15:25
fonte
1

Storicamente, entrambi gli standard sono cresciuti in modo indipendente e gli obiettivi di progettazione erano molto diversi: XPath è per selezionare i set di nodi da un documento XML, mentre CSS è per definire le proprietà di layout dei documenti in vari linguaggi di markup, inclusi HTML, XHTML e SGML. Ovviamente, c'è un po 'di sovrapposizione funzionale, ma non abbastanza da renderli arbitrariamente intercambiabili, e la sintassi è parzialmente incompatibile.

Se è stato fatto uno sforzo per unificarli entrambi, gli implementatori dovrebbero supportare sia i selettori XPath che i CSS, e ognuno di essi è abbastanza complicato da solo (solo per darti un'idea, vedi quanti degli attuali browser CSS3 implementano, e quanto tempo li ha presi).

    
risposta data 18.10.2011 - 14:51
fonte
0

La mia ipotesi:

  • XPath è molto più potente quando si tratta di selezionare i nodi, consentendo alcune condizioni molto complesse
  • mentre i selettori CSS non sono così potenti, sono abbastanza potenti
  • XPath è più recente di CSS
risposta data 18.10.2011 - 13:54
fonte

Leggi altre domande sui tag