У меня есть XML-документы, подобные этим:
<groups>
<group id="A">
<file id="kr3" href="..."/>
<file id="6ft" href="..."/>
...
</group>
<group id="B">
<file id="8dg" href="..."/>
<file id="g32" href="..."/>
...
</group>
</groups>
<structs>
<struct id="abc1">
<filepointer id="kr3"/>
<filepointer id="8dg"/>
...
</struct>
<struct id="abc2">
<filepointer id="6ft"/>
<filepointer id="g32"/>
...
</struct>
</struct>
В XSLT я хочу найти targetFileUrl.
struct
определяет отображение между файлами разных group
узлов.Поэтому я предоставляю sourceUrl
и targetGroupId
.И я хочу получить соответствующий узел, который отображается в struct
.
Так что мне нужно пойти по этому пути:
- sourcehUrl =
'http://...'
- targetGroupId =
'B'
- sourceFileId =
//file[@href=$sourcehUrl]/@id
- structId =
//struct/filepointer[@id=$sourceFileId]/../@id
- targetFileId = ???
- targetFileUrl =
//file[@id=$targetFileId]/@href
Как найти правильный идентификатор файла, который соответствует одному filepointer
в данной структуре?