2013-05-29 51 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>