2
鉴于此xml:的Xpath如何通过指数得到的元素和属性
<mets:techMD ID="techMD014">
<mets:mdWrap MDTYPE="PREMIS:OBJECT">
<mets:xmlData>
<premis:object
xsi:type="premis:file"
xsi:schemaLocation="info:lc/xmlns/premis-v2
http://www.loc.gov/standards/premis/v2/premis-v2-0.xsd">
<premis:objectIdentifier>
<premis:objectIdentifierType
>filepath</premis:objectIdentifierType>
<premis:objectIdentifierValue
>bib1234_yyyymmdd_99_x_performance.xml</premis:objectIdentifierValue>
</premis:objectIdentifier>
</premis:object>
</mets:xmlData>
</mets:mdWrap>
</mets:techMD>
<mets:techMD ID="techMD015">
<mets:mdWrap MDTYPE="PREMIS:OBJECT">
<mets:xmlData>
<premis:object
xsi:type="premis:representation"
xsi:schemaLocation="info:lc/xmlns/premis-v2
http://www.loc.gov/standards/premis/v2/premis-v2-0.xsd">
<premis:objectIdentifier>
<premis:objectIdentifierType
>local</premis:objectIdentifierType>
<premis:objectIdentifierValue
>bib1234_yyyymmdd_99_x</premis:objectIdentifierValue>
</premis:objectIdentifier>
</premis:object>
</mets:xmlData>
</mets:mdWrap>
</mets:techMD>
我想作一个XPath查询一个同时索引和属性考虑在内。 I.e我可以将这两个组合成一个查询吗? (它围绕“对象”元素Im的东西感兴趣):
//techMD/mdWrap[
@MDTYPE=\'PREMIS:OBJECT\'
]/xmlData//object[1]/objectIdentifier/objectIdentifierValue
//techMD/mdWrap[
@MDTYPE=\'PREMIS:OBJECT\'
]/xmlData//object[
@xsi:type=\'premis:file\'
]/objectIdentifier/objectIdentifierValue
谢谢!
+1正确答案。最后的谓词将等于'[position()= 1和@xsi:type ='premis:file']' – 2011-03-14 16:00:57
@Ajjandro。是。实际上在某些实现中会更快。 – Flack 2011-03-14 16:17:36
谢谢你们,看起来我有我需要的东西:) – Jojje 2011-03-15 08:56:27