XSL

2013-03-21 2 views
1

내가 색슨 9 와 XML 파일에 CSV 파일을 변환하기 위해 노력하고있어 원격 csv 파일을 읽어하지만 존재를 확인하고 XSLT의 기능을 csv 파일을 읽을 때 나는 문제가있다 : 구문 분석되지 않은 를 unparsed-text()XSL

로컬 파일에서는 잘 작동하지만 매개 변수로 원격 파일을 전달할 때 unparsed-text-available()은 false를 반환합니다.

예 : "D : \ test \ test.csv"를 전달하면 작동합니다. "\\ remote-computer \ test \ test.csv"를 전달하면 찾을 수 없습니다.

<xsl:template match="/" name="main"> 
    <xsl:choose> 
    <xsl:when test="unparsed-text-available($pathToCSV)"> 
     <xsl:variable name="csv" select="unparsed-text($pathToCSV)"/>      
      .... 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:text>Cannot locate : </xsl:text><xsl:value-of select="$pathToCSV"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

하지만 XML 파일, 해당 문서는() 원격 파일을 읽을 수있는 것 : 여기

내 XSL 파일의 일부이다.

이 경우 사용할 수있는 몇 가지 다른 기능을 알고 있습니까? xslt 또는 saxon에서?

+0

이 될 것이라고 단지 드라이브로 네트워크 공유를 매핑 할 수있는 옵션? –

+0

답장을 보내 주셔서 감사합니다. 다른 사람이 두 개의 백 슬래시를 사용하여 파일 경로를 자동으로 생성합니다. 다른 해결책이 없다면 이것을 고려할 것입니다. – houghstc

답변

0

올바른 경로로 전환해야합니다. 같은

뭔가 :

unparsed-text(concat('file://',translate($pathToCSV,'\','/'))) 
+0

맞습니다. 그러나 UNC 파일 이름을 URI로 변환하는 것은 흑인 예술의 일부입니다. 대체 화요일에 작동하는 것 같습니다. 보다 구체적으로, 사용중인 운영 체제/파일 서버 소프트웨어의 버전에 따라 달라지며 세부 정보를 묻지 않습니다. –

+0

@MichaelKay - 아주 좋은 지적입니다. 또한 OP에 유용 할 수있는 또 다른 함수는'encode-for-uri()'입니다. –