2013-05-29 49 views
1

我在XSL文件中使用下面给出的代码xsl和Results.xml都位于同一位置,但它不能提供输出。实际上,我想访问Results.xml文件的节点以提取数据。使用XSL从外部XML文件中提取数据

<xsl:variable name="fi" select="document('Results.xml')"/> 
      <b><xsl:value-of select="$fi/Report/Doc/DName"/></b> 
+0

什么XSLT处理器,以及如何加载样式表?如果处理器不知道样式表的URI(例如,如果您正在使用InputStream而不是Java中的File)来加载它,那么可能会在解析'document'函数中的相关URI时出现问题。 –

回答

2

当下面XSLT

<?xml version='1.0'?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml"/> 
<xsl:template match="/"> 
<xsl:variable name="fi" select="document('Results.xml')"/> 
      <b><xsl:value-of select="$fi/Report/Doc/DName"/></b> 
</xsl:template> 
</xsl:stylesheet> 

变换下面XML

<?xml version='1.0'?>  
<Report> 
    <Doc> 
     <DName>Sample</DName> 
    </Doc> 
</Report> 

给出所需的输出

<?xml version='1.0' ?> 
<b>Sample</b>