【问题标题】:xmllint doesn't work with https - warning: failed to load external entityxmllint 不适用于 https - 警告:无法加载外部实体
【发布时间】:2016-11-30 20:49:28
【问题描述】:

xmllinthttp://somesite.xml 一起工作正常

但它不适用于https://somesite.xml

xmllint https://somesite.xml
warning: failed to load external entity "https://somesite.xml"

【问题讨论】:

  • 我好像遇到了同样的问题。
  • 同理。 xmllint 不适用于 HTTPS 上的 DTD。
  • 如果您使用远程 DTD 的架构,我能想到的唯一解决方法是在本地下载 DTD 并将架构文件替换为:schemaLocation="file:///tmp/my-path.xsd"

标签: xmllint


【解决方案1】:

作为一种解决方法,您可以使用另一个实用程序(例如 curlwget)先下载文件,然后将其通过管道传输到 xmllint

curl --silent "https://somesite.xml" | xmllint -

注意事项:

  • xmllint 的文件名参数使用-(“连字符/减号”),以从标准输入流而不是从文件或URL 中获取其XML 输入。
  • 您可能希望使用--silent (-s) 来抑制curl 进度/错误消息,以防止xmllint 解析这些消息。
  • 如果 URL 包含特殊字符,则可能需要在 URL 周围加上引号。

这应该适用于xmllint 通过 HTTPS 的 XML 输入,但不确定 DTD 或架构;您可能需要先使用单独的curlwget 命令将其下载到本地文件。

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2019-09-12
    相关资源
    最近更新 更多