2013-05-17 74 views
18

開頭的值我需要一個Xpath表達式來選擇以特定值開頭的值。對於這個例子,我使用的是id字段。Xpath表達式查找以

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

以下不起作用。有沒有辦法使用帶有標籤之間的值的starts-with命令?或者在xpath中有另一種方法來選擇一個具有已知值的匹配值。

這裏是XML我想鑽的樣品爲:

<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

什麼XML應該由這個匹配? – 2013-05-17 10:34:02

+2

刪除'='。 – choroba

+0

@choroba不會只是匹配屬性標籤而不是標籤內的值?我在標籤內的值之後。不是標籤名稱 – Will

回答

32

我覺得這個XPath應該工作//id[starts-with(text(),'Annotaions')]

+9

+1,儘管我建議使用'.'而不是'text()',即'// id [starts-with(。,'whatever')]''。作爲一般規則,你應該避免在XPath表達式中使用'text()',除非你確定你需要它。請記住,它表示「...的所有文本節點子集的集合」(或「如果將它視爲字符串,則爲」...的第一個文本節點子集「),它不一定與」文字值...「 –

+0

@IanRoberts不錯的加法 – Ievgen