You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中忽略安全证书并手动导入证书获取网络XML

使用MATLAB从互联网获取XML数据(含安全证书导入方案)

刚好处理过类似的需求,给你梳理一套完整的操作流程,帮你搞定MATLAB获取XML数据时的安全证书问题:

1. 先手动下载目标网站的安全证书

打开浏览器访问你要抓取XML数据的目标网站,点击地址栏左边的锁形图标,进入证书详情页面,把证书导出成.crt或者.pem格式的本地文件,记得存到你能快速找到的路径。

2. 用importcert函数导入证书

MathWorks支持团队提供的这个函数可以把本地证书导入MATLAB的证书存储,解决HTTPS请求的验证问题,完整代码如下:

% Title: importcert
% Author: MathWorks Support Team
% Code Version: 1.0
% Type: MATLAB source code
function importcert(filename)
    if (nargin == 0)
        % If no certificate specified show open file dialog to select
        [filename, pathname] = uigetfile({'*.crt;*.pem;*.cer','Certificate Files (*.crt, *.pem, *.cer)';...
            '*.*','All Files (*.*)'},'Select Certificate File');
        if isequal(filename,0)
            disp('User canceled import operation.');
            return;
        end
        filename = fullfile(pathname,filename);
    end

    % Read the certificate file
    fid = fopen(filename,'r');
    if fid == -1
        error('Could not open certificate file: %s',filename);
    end
    certData = fread(fid,'*char');
    fclose(fid);

    % Import the certificate into MATLAB's certificate store
    try
        cert = java.security.cert.CertificateFactory.getInstance('X.509').generateCertificate(java.io.ByteArrayInputStream(uint8(certData)));
        keyStore = java.security.KeyStore.getInstance(java.security.KeyStore.getDefaultType());
        keyStore.load([]);
        keyStore.setCertificateEntry('MATLABImportedCert',cert);
        % Save the keystore to MATLAB's preferences directory
        prefDir = prefdir;
        keystoreFile = fullfile(prefDir,'matlab_keystore');
        fos = java.io.FileOutputStream(keystoreFile);
        keyStore.store(fos,'changeit');
        fos.close();
        disp(['Successfully imported certificate: ',filename]);
    catch ME
        error('Failed to import certificate: %s',ME.message);
    end
end

把这段代码存成importcert.m,放到MATLAB的工作目录或者已经添加到MATLAB路径的文件夹里。

两种运行方式:

  • 直接输入importcert回车,会弹出文件选择框让你选刚才下载的证书;
  • 直接传入证书路径,比如importcert('D:\Certs\my_target_cert.crt')。

3. 开始获取并解析XML数据

证书导入成功后,就可以正常用MATLAB的网络工具获取XML数据了,举个简单的例子:

% 发起请求获取XML原始数据
xml_raw = webread('https://你的目标XML接口地址');
% 解析XML为可操作的文档对象
xml_doc = xmlread(xml_raw);

接下来你就可以通过xml_doc的方法去提取你需要的节点和数据了。

内容的提问来源于stack exchange,提问作者Iron Wizard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:20:12