XSLT - два отдельных источника данных объединены в один XSLT - PullRequest
1 голос
/ 25 марта 2011

У меня есть два источника данных XML, которые полностью отделены друг от друга.UserDetails.xml и UserSites.xml.

UserDetails.xml содержит:

<a:UserDetails>
<a:user>
  <a:username>Clow</a:username>
  <a:userid>9834</a:userid>
</a:user>
<a:user>
  <a:username>Adam</a:username>
  <a:userid>9867</a:userid>
</a:user>
</a:UserDetails>

UserSites.xml содержит:

<a:UserSites>
<a:site>
  <a:createdby>9834</a:userid>
  <a:type>blog</a:type>
</a:site>
<a:site>
  <a:createdby>9867</a:username>
  <a:type>web</a:type>
</a:site>

ЧтоЯ хотел бы использовать данные обоих источников данных, чтобы указать, какие пользователи создали сайты и какой у них тип сайта.

Как это можно сделать в XSLT 1.0

1 Ответ

0 голосов
/ 25 марта 2011

Используйте функцию document для доступа к узлам во внешнем документе

Например, следующая таблица стилей применяется к UserDetails.xml:

<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="a">
    <xsl:template match="/">
        <test>
            <xsl:value-of
              select="document('UserSites.xml')/a:UserSites/a:site/a:createdby"/>
        </test>    
    </xsl:template>
</xsl:stylesheet>

Выходыследующий результат из UserSites.xml:

9834

Примечание: Ваш пример XML не правильно сформирован, поэтому мне пришлось внести незначительные корректировки перед обработкой.

...