【问题标题】:Xerces/Xalan: UNC path as argument for document function?Xerces/Xalan:UNC 路径作为文档函数的参数?
【发布时间】:2010-10-18 01:46:21
【问题描述】:

我正在使用 Xerces-C 2.5 和 Xalan-C 1.8 转换 XML 文档。 XSL 包含一个“文档”函数,它引用网络上的文件。不幸的是,我无法通过 HTTP 访问此文件。我只有 UNC 路径。

Xerces 拒绝解析引用的文档,因为在 Xerces 中调用了 WinSockNetAccessor::makeNew,因为“文件”协议只接受本地文件。 WinSockNetAccessor::makeNew 仅针对 HTTP 实现,抛出异常并忽略文件。

有没有办法欺骗 Xerces,以便在不编写我自己的解析器或操作 Xerces 的情况下接受 unc 路径作为本地文件或任何其他已知的解决方法?

【问题讨论】:

    标签: c++ c xml xslt xerces


    【解决方案1】:

    我想一个简单的解决方法是创建一个映射,这样您就可以调用网络驱动器 O: 或其他任何东西。这通常会愚弄不能直接使用 UNC 路径的程序(例如 cmd.exe 本身)。

    【讨论】:

    • 不涉及“愚弄”。映射的网络驱动器不是 UNC 路径。所有与网络相关的活动都由重定向器处理,任何本地程序都只会看到一个默认驱动器(虽然是非默认类型,但大多数程序不会询问)。
    【解决方案2】:

    在 XSL 中出现的 UNC 是否有“file:”前缀?

    顺便说一句,Xerces C V2.5 已经有好几年了。您是否尝试过目前的最新版本 - V3.0.1?

    【讨论】:

    • Xerces 无论如何都会“规范化”URI,结果对于“file://\\pc4711...”、“\\pc4711...”是相同的。顺便说一句:MSXML 相反对这两个术语的反应不同,如果我必须更改解析器,MSXML 将是选择。但你是完全正确的,答案是:不要使用这个旧废料。
    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 2010-09-24
    • 2016-05-13
    • 1970-01-01
    • 2011-06-07
    • 2019-10-03
    • 2014-04-12
    • 2015-09-01
    相关资源
    最近更新 更多