2009-11-19 4 views
0

, 내가 document() 방법과 XSLT로 XML 파일을로드하고있어 HTTP를 통해 오히려 직접보다 파일 시스템에서 외부 문서를로드 :강제 XSLT 문서(), 내 ASP.NET 응용 프로그램 내

<xsl:variable name="more-xml" select="document('generateXml.ashx')" /> 

로컬로 실행할 때 제대로 작동하지만 서버가 파일 시스템을 통해 generateXml.ashx을 찾았 기 때문에 IIS에 처리되지 않으므로 서버에 배포 할 때 오류가 발생합니다.

만약이 같은 I 하드 코드 URL :

다음 문서 주소는 항상 HTTP를 통해 해결 될 때, 그래서 지속적으로 작동
<xsl:variable name="more-xml" select="document('http://server/app/generateXml.ashx')" /> 

-하지만 난 하드 코드에에 URL을 원하지 않는다 XSLT. document()가 상대 경로로 FILE 대신 HTTP를 사용하도록 강제하는 방법이 있습니까?

답변

0

XSLT에서 document() 메서드를 사용하여 XML을로드하는 대신 을 사용하여 <xsl:param>을 XML로 채 웁니다. 그런 다음 XSLT에서

XsltArgumentList args = new XsltArgumentList(); 
args.AddParam("more-xml", string.Empty, myXmlDocument.CreateNavigator().SelectChildren(XPathNodeType.All)); 

// pass the argument list to the transform 
myXslCompiledTransform.Transform(sourceXml, args, myXmlWriter); 

:

<xsl:param name="more-xml"></xsl:param>