2011-03-25 57 views
1

得到:想跳过一个标签和被鉴于这种XML索引

<mets:mets> 
<mets:fileSec> 
    <mets:fileGrp ID="fileGrp001" USE="image/dynamic"> 
    <mets:file ID="filebib4112678_18760203_1_24_0001_m.jp2" MIMETYPE="image/jp2" SIZE="5308416" 
    CREATED="2009-11-10T00:00:00" USE="image/dynamic" ADMID="techMD001" 
    CHECKSUM="c07f516d77d8a5ca452775d489ffe78c" CHECKSUMTYPE="MD5"> 
    <mets:FLocat LOCTYPE="URL" xlink:type="simple" 
     xlink:href="file:bib4112678_18760203_1_24_0001_m.jp2"/> 
    </mets:file> 
    <mets:file ID="filebib4112678_18760203_1_24_0002_m.jp2" MIMETYPE="image/jp2" SIZE="5308416" 
    CREATED="2009-11-10T00:00:00" USE="image/dynamic" ADMID="techMD002" 
    CHECKSUM="6497ceb7a8477fbe9ba4ff9e6e57999f" CHECKSUMTYPE="MD5"> 
    <mets:FLocat LOCTYPE="URL" xlink:type="simple" 
     xlink:href="file:bib4112678_18760203_1_24_0002_m.jp2"/> 
    </mets:file> 

</mets:fileGrp> 
<mets:fileGrp ID="fileGrp002" USE="text/alto"> 
    <mets:file ID="filebib4112678_18760203_1_24_0001_alto.xml" MIMETYPE="text/xml" SIZE="1114112" 
    CREATED="2009-11-10T00:00:00" USE="text/alto" ADMID="techMD005" 
    CHECKSUM="e391852693f78d2eb024caf6dbdb97c6" CHECKSUMTYPE="MD5"> 
    <mets:FLocat LOCTYPE="URL" xlink:type="simple" 
     xlink:href="file:bib4112678_18760203_1_24_0001_alto.xml"/> 
    </mets:file> 
    <mets:file ID="filebib4112678_18760203_1_24_0002_alto.xml" MIMETYPE="text/xml" SIZE="1114112" 
    CREATED="2009-11-10T00:00:00" USE="text/alto" ADMID="techMD006" 
    CHECKSUM="e391852693f78d2eb024caf6dbdb97c6" CHECKSUMTYPE="MD5"> 
    <mets:FLocat LOCTYPE="URL" xlink:type="simple" 
     xlink:href="file:bib4112678_18760203_1_24_0002_alto.xml"/> 
    </mets:file> 

    </mets:fileGrp> 
    </mets:fileSec> 
</mets:mets> 

这个表达式:

/大都会/ fileSec/fileGrp [2] /文件[2]/@ ADMID

给出结果“techMD006”

不过,我想用这样的表达/查询得到同样的结果:

/大都会/ fileSec //文件[4]/@ ADMID

即我不想理会fileGrp元素,因为它使事情变得更加复杂。不幸的是,上述表达式不起作用。

有没有人知道如何做出这样的表达?

thanx!

+0

检查了这一点,我想你可以查询你的文件元素,然后选择你想要的索引... http://stackoverflow.com/questions/4007413/xpath -query-to-get-n-instance-of-an-element – 2011-03-25 15:47:46

+0

这个FAQ的许多重复之一:http://stackoverflow.com/questions/4007413/xpath-query-to-get-nth-instance-的-AN-元件 – 2011-03-26 01:00:17

回答

1

你表达检索所有file元素是/mets/fileSec的后裔,属于其父母的第四个孩子:

/mets/fileSec//file[4]/@ADMID 

但是,你有没有这样的元素。你想要的是检索所有file元素是/mets/fileSec的后裔,然后采取第四个。使用这个:

(/mets/fileSec//file)[4]/@ADMID