【问题标题】:xsltproc on windows: I/O error: invalid argument if argument is absolute pathWindows 上的 xsltproc:I/O 错误:如果参数是绝对路径,则参数无效
【发布时间】:2017-11-09 10:35:02
【问题描述】:

我在 Windows 上使用 xsltproc 根据this guide

当我使用相对路径运行 xsltproc 时,即:

xsltproc -o "..\output.html" "c:\templates\out.xsl" "c:\data\input.xml"

一切正常。 但是当我使用绝对路径运行它时,它会失败,例如:

xsltproc -o "c:\output.html" "c:\templates\out.xsl" "c:\data\input.xml"
I/O error : Invalid argument
I/O error : Invalid argument

尝试使用正斜杠和反斜杠作为路径分隔符,结果相同(问题仅在于 -o 参数)

xsltproc 如何期望 Windows 绝对路径 被编码?

【问题讨论】:

  • 您是否尝试引用路径?喜欢-o "C:\output.htm"-o "C:/output.htm"?另外,您使用的是什么版本的 libxslt?
  • 我刚刚尝试使用libxslt-1.1.26.win32,只要我将路径用引号括起来,它就可以正常工作。这似乎根本不是关于 XSLT 的问题——这完全是关于如何将参数提供给 Windows 可执行文件。
  • 添加引号没有区别(路径中没有空格)。这看起来像一个错误

标签: windows xslt mingw mingw32 msys


【解决方案1】:

对我来说,这是输出文件路径的问题;即使它已被双引号它仍然给出了错误。一旦我删除了包含空格的文件夹,它就起作用了。奇怪的是,输入的 %I 文件在同一个包含空间的文件夹中,我不需要修改那个。

【讨论】:

    【解决方案2】:

    xsltproc 似乎不知道驱动器号(“C:\path\to\output\output.html”)。空格和反斜杠没有问题。如果我从“输出”(“\path\to\output\output.html”)中删除驱动器号,一切正常。

    这个“解决方案”的问题是输入和输出必须共享驱动器号。

    詹斯

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2022-12-15
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多