Xslt 用于另一台计算机/服务器上的文件的document()函数
我理解document()的用法如下Xslt 用于另一台计算机/服务器上的文件的document()函数,xslt,xpath,xslt-1.0,Xslt,Xpath,Xslt 1.0,我理解document()的用法如下 <xsl:value-of select="document('path\to\docuemnt.xml')/RootElement/Element"/> 这当然不存在。您对document()的理解是错误的。它需要一个URI,而不是文件名。您对document()的理解不正确。它需要一个URI,而不是文件名。此解决方案仅与Windows 7上控制台应用程序窗体中的Saxon HE 9.4.0.3N XSLT处理器相关 在我的实验中,我发现do
<xsl:value-of select="document('path\to\docuemnt.xml')/RootElement/Element"/>
这当然不存在。您对document()的理解是错误的。它需要一个URI,而不是文件名。您对document()的理解不正确。它需要一个URI,而不是文件名。此解决方案仅与Windows 7上控制台应用程序窗体中的Saxon HE 9.4.0.3N XSLT处理器相关 在我的实验中,我发现document()函数将接受文件名或URI。但是,我会避免使用文件名,因为它们需要是简短的形式。如果使用长格式,文件名将被拒绝 假设您的文档是
c:\path\to\document.xml
在映射到驱动器“j”的服务器“servername”上
要从此文件中形成URI,请将其用作document()参数值
file:///j:/path/to/document.xml
关于URI,我错误地认为Saxon不接受长格式。这仅适用于文件名。然而,有一些陷阱
此解决方案仅与Windows 7上控制台应用程序表单中的Saxon HE 9.4.0.3N XSLT处理器相关 在我的实验中,我发现document()函数将接受文件名或URI。但是,我会避免使用文件名,因为它们需要是简短的形式。如果使用长格式,文件名将被拒绝 假设您的文档是
c:\path\to\document.xml
在映射到驱动器“j”的服务器“servername”上
要从此文件中形成URI,请将其用作document()参数值
file:///j:/path/to/document.xml
关于URI,我错误地认为Saxon不接受长格式。这仅适用于文件名。然而,有一些陷阱
答案将取决于XSLT处理器、操作系统和文件系统。根据经验,您可能可以安全地使用file::protocol。此外,XSLT处理器是否支持目录也可能会影响结果。请告诉我们您的上下文(XSLT处理器等)。例如,在Saxon处理器上,您可以使用标准file::protocol引用任何文件,但前提是使用短文件名形式。如果使用长文件名,Saxon将找不到该文件。作为文件协议的替代方案,如果该文件通过http可用,则可以指定其