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

请求协助修复XML读取代码中的MODULE_NOT_FOUND错误

XML读取脚本报错修复方案

原代码

function readXML()
{
    var xml= new XMLHttpRequest();
    xml.open('GET','C:\Users\ppriyadharshini\Documents\Javascript\eFORM-MAL_2022-08-26_Merlana Buenaflor_Due Date 2022-09-23_Calculation (1).xml',false);

    xml.send();

    varxmlData=xml.responseXML;

    if(!xmlData)
    {
        
        xmlData=(new DOMParser());parseFromString(xml.responseText,'text/xml');
        var req= xmlData.getElementsByTagName("my:MDRequest");
        var reqs=req[0].getElementsByTagName("my:RequestingSite")[0].firstChild.data;
        window.alert("Requesting Site:"+reqs);  
    }
}

报错信息

Error: Cannot find module 'C:\Users\ppriyadharshini\XMLExtraction.js'
at Function.Module._resolveFilename
(node:internal/modules/cjs/loader:956:15)
at Function.Module._load
(node:internal/modules/cjs/loader:804:27)
at Function.executeUserEntryPoint [as runMain]
(node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []

问题排查与修复

  1. 模块找不到的原因
    你用Node.js运行了这段浏览器端代码。XMLHttpRequest是浏览器专属API,Node.js环境没有这个对象;同时Node.js按模块规则加载文件,找不到指定的脚本路径才触发这个错误。

  2. 先修正代码语法错误

  • 变量名varxmlData缺少空格,改为var xmlData
  • DOMParser调用语法错误,正确写法:xmlData = new DOMParser().parseFromString(xml.responseText, 'text/xml');
  1. Node.js环境适配方案
    如果要在Node.js中读取本地XML文件,需要用fs模块读取文件,借助xmldom库解析XML:
  • 安装依赖:npm install xmldom
  • 修改后的代码:
    const fs = require('fs');
    const { DOMParser } = require('xmldom');
    
    function readXML() {
        // Windows路径需转义反斜杠
        const filePath = 'C:\\Users\\ppriyadharshini\\Documents\\Javascript\\eFORM-MAL_2022-08-26_Merlana Buenaflor_Due Date 2022-09-23_Calculation (1).xml';
        // 读取本地XML文件内容
        const xmlContent = fs.readFileSync(filePath, 'utf8');
        // 解析XML
        const xmlDoc = new DOMParser().parseFromString(xmlContent, 'text/xml');
        
        const mdRequest = xmlDoc.getElementsByTagName("my:MDRequest");
        if (mdRequest.length > 0) {
            const requestingSite = mdRequest[0].getElementsByTagName("my:RequestingSite")[0]?.firstChild?.data;
            console.log(`Requesting Site: ${requestingSite}`);
        } else {
            console.log("未找到my:MDRequest节点");
        }
    }
    
    readXML();
    
  1. 浏览器环境适配方案
    如果是在浏览器中运行:
  • 不能直接访问本地文件路径(浏览器安全限制),需将XML文件放到服务器目录下,用相对路径或服务器URL请求
  • 建议改用异步请求(同步请求会阻塞浏览器),示例:
    function readXML() {
        var xml = new XMLHttpRequest();
        xml.open('GET', './eFORM-MAL_2022-08-26_Merlana Buenaflor_Due Date 2022-09-23_Calculation (1).xml', true);
        xml.onload = function() {
            var xmlData = xml.responseXML;
            if (!xmlData) {
                xmlData = new DOMParser().parseFromString(xml.responseText, 'text/xml');
            }
            const req = xmlData.getElementsByTagName("my:MDRequest");
            if (req.length > 0) {
                const reqs = req[0].getElementsByTagName("my:RequestingSite")[0]?.firstChild?.data;
                window.alert("Requesting Site:" + reqs);
            } else {
                window.alert("未找到指定节点");
            }
        };
        xml.send();
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:55:13