2013-05-17 73 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