2010-08-07 12 views
5

questo è per la scuola, se si conosce il XPath e non mi dispiacerebbe dirmi se sono corrette:ho ragione riguardo a cosa significano queste espressioni XPath?

1. //a[/b]/a

ogni 'a' che ha un genitore 'a' in un albero in cui la radice è "b". (La posizione del [/b] è irrilevante cioè sia quello sopra equivalente a //a/a[/b]

2. //*[//a]//a[/a][a]

scomponendola da sinistra a destra:? //*[//a], tutti gli elementi aventi discendente 'a', quindi //*[//a]//a (abbastanza scolastico-excerisely) significa tutti gli elementi 'a'. e //*[//a]//a[/a] significa tutti gli elementi 'a' in un albero in cui la radice è 'a', e infine - //*[//a]//a[/a][a] significa tutti gli elementi 'a' in un albero dove la radice è 'a' che ha un figlio 'a'.

Grazie per qualsiasi aiuto, non riesco a ottenere una risposta diretta ovunque.

+2

finalmente una domanda sui compiti a casa che mostra in realtà che la persona che chiede ha lavorato su di essa. +1 per quello. – Femaref

+0

Sei per lo più corretto. Riguardo al # 2, '// * [// a]' non seleziona tutti gli elementi che hanno un discendente 'a', seleziona tutti gli elementi se il documento contiene un' a' qualsiasi dove all'interno del documento. Per selezionare tutti gli elementi con un 'a' discendente è necessario creare il filtro del predicato relativo all'elemento corrispondente:' //*[.// a] ' –

+0

ok, quindi è vero che la posizione di qualsiasi predicato di la forma [// a], [/ a] è irrilevante? Che ne dici di un semplice [a], la posizione di quella materia? Grazie! (Stack Overflow è seriamente un fenomeno) – bloodcell

risposta

1

Quale classe ti fa interrogare su query arcane XPath? Wow.

  1. //a[/b]/a
    Sì, avete questo diritto. La posizione di [/b] è irrilevante.

  2. //*[//a]//a[/a][a]
    Tecnicamente //*[//a]//a è equivalente a //*//a che significa tutti elementi 'A' che hanno un elemento antenato. Quindi se l'elemento radice è 'a' non sarà abbinato. A parte questo, sì, la tua analisi è corretta.

Per quel che vale, a pochi anni fa ho realizzato un parser completo XPath da zero in JavaScript per un progetto ho lavorato su. Quindi spero davvero che le mie risposte siano giuste!

+0

Grazie (ho inserito un commento sopra). È una lezione stupida sui motori di ricerca in cui coprono troppo a un livello troppo basso :) – bloodcell

Problemi correlati