【问题标题】:Saxon HE vs Saxon PE: File URI ResolutionSaxon HE 与 Saxon PE:文件 URI 解析
【发布时间】:2016-05-02 13:23:17
【问题描述】:

我的问题很简单。我只是想知道购买专业版的 Saxon 是否有助于文件 URI 解析,因为专业版具有 EXPath 扩展名。

我问这个是因为无论我多么努力(传递命令行参数,使用 file:///C|/path/to/text.csv 等)Saxon-HE 拒绝让我的样式表使用 unparsed-text('file:///C:/path/to/text.csv') 加载原始文本文件,并且会仅当文件来自已安装的网络驱动器之一 unparsed-text('file://example.com/Dept/path/to/text.csv') 时才解析该文件。

我不得不问这个问题,因为撒克逊文档明确指出 unparsed-text()NOT dependant on any custom URI resolver classes being used

【问题讨论】:

  • unparsed-text('file:///C:/path/to/text.csv') 看起来不错,您可能想告诉我们您遇到的确切错误,说明您使用的 Saxon HE 的确切版本,向我们展示您如何称呼它,使用来自的 -t 选项例如,用于详细错误诊断的命令行。
  • 公平地说,Saxon 没有给出任何错误:只有样式表会指示何时找不到 CSV 文件。我使用的样式表是based on this example,除了在生成文档的模板中映射我需要的 XML 之外,我保持大部分样式表不变。
  • 所以unparsed-text-available() 为您的尝试提供错误信息。 URI 真的像 file:///C:/path/to/text.csv 一样简单吗?还是目录名称中有空格?
  • CSV 的 URI 中没有空格。 URI 指向C:\Bizvoice\text1.csvC:\Bizvoice\text2.csv

标签: xml csv xslt saxon exslt


【解决方案1】:

您的简单问题的简单答案是否定的。商业 Saxon 版本有很多好处,但它们不是魔法仙粉:如果您使用的 URI 无法在 Saxon-HE 中取消引用,那么您需要找出您做错了什么而不是希望不同的软件会为您解决。

我建议先尝试最简单的情况。创建一个名为c:/test.txt 的文件,然后尝试将其引用为unparsed-text('file:///c:/test.txt')。回来告诉我们这是否有效。

【讨论】:

  • 不幸的是,尝试从 file:///c:test.txt 解析 URI 不起作用。发生转换的唯一方法是从网络驱动器解析路径。但是:这可能是因为网络驱动器的设置方式;我们的%HOMESHARE% 变量也永久链接到网络驱动器。
  • @LeeS, file:///c:test.txt 错误,冒号后缺少斜杠:file:///c:/test.txt
  • 那是一个错字;对不起
  • 接下来我会尝试从等式中消除撒克逊人:尝试编写一个小 Java 程序,打开指向 file:///c:/test.txt 的 URLConnection。 (因为这就是撒克逊人所做的一切......)
【解决方案2】:

答案是始终检查原始文本的编码您尝试通过 XSLT 以 UTF-8 解析它之前。 :^)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-16
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2019-03-22
    相关资源
    最近更新 更多