2013-03-22 123 views
1

这个问题可能反映了我对Xpath知识的完全无知,但我仍然敢问它。 我有我的XML结构去一些与此类似:xpath识别独特元素

<record> 
<data> 
<type>student</type> 
<name>Kevin</name> 
</data> 

<data> 
<type>teacher</type> 
<name>Matt</name> 
</data> 
</record> 

我怎样写XPath来选择马特,老师? “//记录/数据/名称”是否总是返回匹配的第一/最后/全部/无保证记录?

感谢 凯文

回答

1

//record/data/name将匹配您的示例XML两种name元素。

为特别地匹配老师,你应该增加一个谓词:

/record/data[type='teacher']/name

如果你有一个以上的“老师”会匹配所有的人。你可以缩小它进一步虽然...

这将匹配第一个老师:

(/record/data[type='teacher']/name)[1]

这将匹配名为 “马特” 的第一任老师:

(/record/data[type='teacher']/name[.='Matt'])[1]

+0

感谢您的详细解答 – 2013-03-22 13:23:13