2013-05-17 9 views
18

Ho bisogno di un'espressione Xpath che selezionerà valori che iniziano con un determinato valore. Per questa istanza sto usando il campo id.Espressione Xpath per trovare valori che iniziano con

@id=[starts-with(name(),'value') 

Quanto segue non funziona. C'è un modo per usare il comando starts-with con il valore tra i tag? O c'è un altro mezzo in xpath per selezionare un valore corrispondente ad un valore noto.

Ecco un esempio del xml che sto cercando di perforare:

<bean> 
<id>AnnotationsBasedJMXAutoExporter</id> 
<class>org.springframework.jmx.export.MBeanExporter</class> 
<lazy-init>false</lazy-init> 
     <property>assembler 
       <!-- will create management interface using annotation metadata --> 
    <bean> 
+1

Cosa XML dovrebbe essere accompagnata da questo? –

+2

Rimuovi '='. – choroba

+0

@choroba non corrisponde solo ai tag dell'attributo anziché al valore all'interno dei tag? Sto cercando il valore all'interno dei tag. Non è il nome del tag – Will

risposta

32

penso che questo dovrebbe funzionare XPath //id[starts-with(text(),'Annotaions')]

+9

+1, anche se raccomanderei l'utilizzo di '. Piuttosto che' text() ', cioè // // id [inizia con (., 'Qualunque')]'. Come regola generale dovresti evitare di usare 'text()' nelle espressioni XPath a meno che tu non sia veramente sicuro di averne bisogno. Ricorda che significa "l'insieme di tutti i nodi del nodo di testo di ..." (o "il primo nodo del testo figlio di ..." se lo tratti come una stringa), che non è necessariamente uguale a "il valore di testo di ... " –

+0

@IanRoberts bella aggiunta – Ievgen

Problemi correlati