2013-05-17 14 views
18

Potrzebuję wyrażenia Xpath, które wybierze wartości, które zaczynają się od określonej wartości. W tym przypadku używam pola id.Wyrażenie Xpath, aby znaleźć wartości zaczynające się od

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

Poniższe nie działają. Czy istnieje sposób użycia komendy start-with z wartością między tagami? Czy istnieje inny sposób w xpath wyboru dopasowania wartości o znanej wartości.

Oto próbka xml próbuję wiercić:

<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

Co XML powinny być dopasowane przez to? –

+2

Usuń '='. – choroba

+0

@ choroba nie pasowałoby do tagów atrybutów, a nie do wartości w tagach? Jestem po wartości w tagach. Nie nazwa tagu – Will

Odpowiedz

32

myślę, że to powinno działać XPath //id[starts-with(text(),'Annotaions')]

+9

+1, choć zalecam używanie '.' zamiast' text() ', to jest' // id [starts-with (., 'Whatever')] '. Zasadniczo powinieneś unikać używania 'text()' w wyrażeniach XPath, chyba że jesteś naprawdę pewien, że tego potrzebujesz. Należy pamiętać, że oznacza to "zestaw wszystkich węzłów tekstowych węzłów ..." (lub "pierwszy węzeł potomny tekstu z ...", jeśli traktujesz go jako ciąg), który niekoniecznie jest taki sam jak " wartość tekstowa ... " –

+0

@IanRoberts miły dodatek – Ievgen

Powiązane problemy