Поиск узла в группе путем сопоставления узлов другой группы - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть 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 в данной структуре?

...