XSLT - 两个独立的数据源合并为一个XSLT

时间:2011-03-25 18:31:49

标签: xslt xslt-1.0

我有两个完全独立的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 :(得分:0)

使用document function访问外部文档中的节点

例如,以下样式表应用于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格式不正确,因此我必须在处理之前进行微调。