XPATH / XSLT: Выбор узла, у которого атрибут родительского узла совпадает с атрибутом другого узла

Я пытаюсь применить преобразование к XML, указанному ниже, с помощью XPath и XSLT.

<AuthorGroup>
  <Author AffiliationID="A1">
    <GivenName>John</GivenName>
    <Initials/>
    <FamilyName>Smith</FamilyName>
    <Degrees/>
    <Roles/>
  </Author>
    <Author AffiliationID="A2">
    <GivenName>Bill</GivenName>
    <Initials/>
    <FamilyName>Atkins</FamilyName>
    <Degrees/>
    <Roles/>
  </Author>
  <Affiliation AFFID="A1">
    <OrgDivision/>
    <OrgName>Some Org</OrgName>
    <OrgAddress/>
  </Affiliation>
  <Affiliation AFFID="A2">
    <OrgDivision/>
    <OrgName>Another Org</OrgName>
    <OrgAddress/>
  </Affiliation>
</AuthorGroup>

I Я пытаюсь объединить имена автора и организации в одном узле, поэтому я Я получу такую ​​структуру, как:

<AUG>
  <AU><NAME>John Smith</NAME><AUINFO>Some Org</AUINFO></AU>
  <AU><NAME>Bill Atkins</NAME><AUINFO>Another Org</AUINFO></AU>
</AUG>

Я изо всех сил пытаюсь найти способ выбора значения узла, атрибут родительского узла которого совпадает со значением атрибута другого узла. Например, для автора Джона Смита я хотел бы выбрать значение узла, для которого совпадает идентификатор присоединения.

Пока у меня есть код в моей таблице стилей, как показано ниже, но я знаю, что выбор внутри узла не за работой.

<xsl:for-each select="AuthorGroup/Author">
  <AU>
  <NAME><xsl:value-of select="./FamilyName" /> <xsl:value-of select="./GivenName" /></NAME>
  <AUINFO><xsl:value-of select="../Affiliation[@AFFID='NEED TO MATCH AUTHOR AFFILIATIONID']/OrgName" /> </AUINFO>


  </AU>         
</xsl:for-each>

Как мне выбрать значение правильного названия организации для связанного автора?

Большое спасибо

Джим

5
задан JimS 29 March 2011 в 13:03
поделиться