2012-09-24 6 views
5

ho visto un articolo on-line sul how to map CSS selectors to XPATH queries, quindi sto cercando di capire se ci sono delle librerie .NET là fuori che può fare la mappatura/conversione. Per favore fatemi sapere se avete riferimenti o idee su come eseguire la mappatura (se una libreria non è disponibile).selettore CSS Converti in XPath

+0

si potrebbe provare questo: https://bitbucket.org/MostThingsWeb/css2xpath/wiki/Home – MUG4N

+1

@ MUG4N, che vale la pena una risposta. – LarsH

+0

Ho scritto una libreria Pascal per convertire i selettori CSS 3 in XPath 2. Ma crea direttamente un AST dell'espressione XPath, senza mai mantenere l'espressione in forma serializzata, quindi non penso che ti possa aiutare qui ... un motore XPath, in modo da poter mescolare come '/html/css("div.whatever a")/@ href'. IMHO dovrebbero aggiungere questo allo standard XPath, non c'è bisogno di convertire più nulla.) – BeniBela

risposta

7

Si potrebbe provare la libreria Css2Xpath trovato qui: https://bitbucket.org/MostThingsWeb/css2xpath/wiki/Home

non ho mai usato, ma forse si può condividere la vostra esperienza con noi.

Ecco un piccolo esempio di utilizzo:

String css = "div#test .note span:first-child"; 
String xpath = css2xpath.Transform(css); 
+1

Ci sono stati alcuni bug con i valori letterali delle stringhe e il primo childlast-child non funziona in alcuni casi come questo: '[width =" 150 "]: last-child'. Altrimenti funziona piuttosto bene, grazie! – Kiril

+0

Ciao a tutti - Sono l'autore di css2xpath (beh, la porta comunque). Ho appena rilasciato un nuovo progetto, css2xpath Reloaded, per sostituire questo: https://bitbucket.org/MostThingsWeb/css2xpath-reloaded. Non dovresti avere problemi con le stringhe letterali, né con le pseudo-classi. Non è ancora completamente testato, ma potresti volerlo controllare a prescindere. –