2012-02-09 53 views
0

我如何查看select="document('02.xml')/*/Person"/select="document('04.xml')/*/Person"/可在xsl中找到。當xsl正在運行時如何檢查文檔在xsl中可用?

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="/xmlResponse"> 
     <xsl:copy> 
      <xsl:apply-templates select="document('02.xml')/*/Person"/> 
      <xsl:apply-templates select="document('04.xml')/*/Person"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="@* | node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@* | node()"/> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

回答

0

取決於XSLT處理器。

首先檢查解析器

<xsl:variable name="vendor" select="system-property('xsl:vendor')" /> 

,然後作出選擇。

微軟使用嵌入的JavaScript自定義函數(http://dev.ektron.com/kb_article.aspx?id=482)時,使用FileSystemObject的並返回1或0,可以在XSLT可以然後進行測試。

撒克遜人,的Xalan:

<xsl:variable name="d03" select="document('03.xml')"/> 
<xsl:choose> 
<xsl:when test="$d03"> 
     <xsl:apply-templates select="document('03.xml')/*/Person"/> 
</xsl:when> 
<xsl:otherwise> 
     <Person name="Matthew" missing="true"/> 
</xsl:otherwise></xsl:choose>