2017-03-06 42 views
0

我想特定的路徑收集功能工作。我想要特定的路徑收集功能工作

請檢查並更正我的代碼。

XML別名輸入:

<folder_name> 
<folder path="d:\123\2017_01_13"></folder> 
<folder path="d:\123\\2017_02_14"></folder> 
</folder_name>' 

XSLT:

<xsl:variable name="hhhh" select="'file:///d:/list_of_files.html'"/> 
<xsl:result-document href="{$hhhh}"> 
    <xsl:text>&#xa;</xsl:text> 
    <xsl:for-each select="document('file:///d:/xslt_path.xml')//@path"> 
     <xsl:variable name="aa" select="//@path"/> 
     <xsl:variable name="ajeet_1" select="concat('file:///', $aa)"/> 
     <xsl:variable name="ajeet_coll" select="collection(concat(ajeet_1, '/?select=*.xml;recurse=yes'))"/> 
     <xsl:for-each select="$ajeet_coll"> 
      <xsl:text>&#xA;</xsl:text> 
      <xsl:text>&#xA;</xsl:text> 
      <xsl:for-each select="//image"> 
       <xsl:value-of select="@xlink:href"/> 
       <xsl:text>&#xA;</xsl:text> 
      </xsl:for-each> 
     </xsl:for-each> 
    </xsl:for-each> 
</xsl:result-document> 

`

回答

1

XSLT可與URI的,不能與文件路徑。因此,如果你控制輸入,考慮使用例如<folder path="file:///d:/123/2017_01_13"></folder>。否則,您必須將文件路徑先轉換到的URI:

<xsl:variable name="ajeet_1" select="iri-to-uri(concat('file:///', replace($aa, '\\', '/')))"/> 

你也需要改變<xsl:variable name="aa" select="//@path"/>簡單<xsl:variable name="aa" select="."/>作爲內部for-each你已經處理屬性。

+0

感謝它的工作 –