我如何检查xsl中的select="document('02.xml')/*/Person"/
和select="document('04.xml')/*/Person"/
。当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 :(得分:0)
依赖于XSLT处理器。
首先检查解析器
<xsl:variable name="vendor" select="system-property('xsl:vendor')" />
然后做出选择。
Microsoft 使用嵌入式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>