【发布时间】:2014-01-08 04:29:30
【问题描述】:
如何编写 xpath 以根据节点的属性和子节点(如果有)属性获取匹配节点
单个xml节点:
<Nokia_3220.gif jcr:primaryType="nt:file" jcr:uuid="90ff297d-7508-4cc8-8302-71b6e75fb8ba"
jcr:created="2014-01-03T04:51:24.377-08:00" jcr:createdBy="admin">
<jcr:content jcr:primaryType="nt:unstructured" country="India" firstName="Supplier"
jcr:data="FBAAOw==" jcr:lastModified="2014-01-03T18:21:11.216+05:30"
jcr:mimeType="image/gif" lastName="Image1" phone="988-777-5551"
state="WB" status="Active"/>
</Nokia_3220.gif>
jcr:uuid 和 state 以及 firstName 和 jcr:created 的 xpath 查询都类似于搜索吗?
我试过了:
string xpath = "//Nokia_3220.gif[contains(translate(@jcr:uuid,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'),
'90ff297d-7508-4cc8-8302-71b6e75fb8ba')
and contains(translate(@state, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'),'W')
and contains(translate(@firstName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'),'pplie')]"
xmlnodelist list = objDoc.selectnodes(xpath,ns);
我的问题是我无法预测特定属性是属于节点本身还是属于其子节点。
如果确定包含该属性的元素的名称,如何编写xpath来获取节点而不考虑附加到节点或其子节点的属性?
【问题讨论】: