利用AJAX读取本地xml

 function getEdiInfo(buttonObj,divId,containerCode){
	var strResult;
	strResult = "app040";
	window.navigate(strResult);
	$("#"+divId).html("<h3>正在获取H2000信息......</h3>");
	
	loadEdiXML();
}

1,MFC里实现类:class CIPSHtmlView : public CHtmlView
2,重写虚函数:

virtual void OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel);

3,

void CIPSHtmlView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel) 
{	
	
	m_strUrl = lpszURL;
	if(m_strUrl.Right(6) == L"app040")
	{
	     //想做的操作
	}
function loadEdiXML(){//kang add   读本地edi.xml文件,并显示
		//1,判断本地是否存在picno_EDI.xml文件,若存在按钮变灰不可用并显示信息
		var ipsXMLStr = document.getElementById("ipsXML").value.trim();
		var ipsXMLDom = getXmlFromStr(ipsXMLStr);
		var buttonObj = $("input[name='getEdiButton']");//
		buttonObj.attr("disabled",true);//设置按钮不可见
		if(ipsXMLDom === false){
			//buttonObj.disabled = false; 
			buttonObj.removeAttr("disabled");
			return;
		}
		var xmlDoc;
		var EdiXMLPath = ipsXMLDom.selectSingleNode("/IDR/@EdiXMLPath").text;//获得edi.xml文件的路径
		
		try //Internet Explorer
		  {
		      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		  }
		catch(e)
		  {
			  try //Firefox, Mozilla, Opera, etc.
				{
				    xmlDoc=document.implementation.createDocument("","",null);
				}
			  catch(e) {
				  //buttonObj.disabled = false; 
				  buttonObj.removeAttr("disabled");
			  }
		  }

        
		if(xmlDoc != null){
			//同步方式加载XML数据
			xmlDoc.async = false;
			//根据XML文档名称装载
			xmlDoc.load(EdiXMLPath);
			var divId = $("div.ediDiv")[0].id;//选择器
			//buttonObj.disabled = true;
			
			displayMain(xmlDoc,divId,buttonObj,false);//显示信息
		}else{
			//2,若不存在,则按钮可用,用户可点击获得edi
		    //buttonObj.disabled = false;  // 这种方式失效
		    	buttonObj.removeAttr("disabled");//用这种方式
			$("#" + divId).html("<h3>无相关报关单、舱单信息!</h3>");
			return;
	    }	
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 jQuery 的 AJAX 方法实现,代码如下: $.ajax({ type: "GET", url: "file.xml", dataType: "xml", success: function(xml) { // 在此处添加代码 } }); ### 回答2: 在jQuery中,可以通过使用`$.ajax()`方法来读取本地XML文件。以下是一个例子: ```javascript $.ajax({ type: "GET", url: "本地XML文件的URL", dataType: "xml", success: function(xml) { // 在这里对xml进行处理 $(xml).find("节点名称").each(function() { // 处理每个节点 var nodeValue = $(this).text(); // 获取节点的文本内容 console.log(nodeValue); }); }, error: function(xhr, status, error) { console.error(error); // 在控制台打印错误信息 } }); ``` 在这个例子中,我们使用`$.ajax()`方法发送GET请求来获取本地XML文件。`url`参数应该是你的XML文件的URL。`dataType`参数设置为"xml",告诉jQuery返回的是XML数据。然后使用`success`回调函数处理返回的XML数据。 在`success`回调函数中,我们可以使用`$(xml)`来将返回的XML数据转换成jQuery对象,然后使用jQuery的选择器进行节点查找。例如,`$(xml).find("节点名称")`将查找所有名称为"节点名称"的节点。 使用`.each()`方法遍历每个找到的节点,并在回调函数中处理它们。可以使用`.text()`方法来获取节点的文本内容。 如果请求发送失败,可以在`error`回调函数中处理错误。 请注意,由于浏览器安全策略的限制,本地XML文件的URL可能必须与你的网页文件位于同一个域名下,否则可能会出现安全错误。 ### 回答3: jQuery可以通过使用`$.ajax`方法来读取本地XML文件。下面是一个例子: ```javascript $.ajax({ type: "GET", url: "example.xml", // 替换为本地XML文件的路径 dataType: "xml", success: function(xml) { // 成功读取XML文件后的处理代码 $(xml).find("item").each(function() { var title = $(this).find("title").text(); var description = $(this).find("description").text(); // 在控制台打印每个<item>元素的标题和描述 console.log("标题: " + title); console.log("描述: " + description); }); }, error: function(xhr, status, error) { // 读取XML文件出错的处理代码 console.log("读取XML文件出错:" + error); } }); ``` 在这个例子中,我们使用`$.ajax`方法向服务器请求一个XML文件。`type`参数指定请求的类型为GET,`url`参数指定请求的地址为本地的`example.xml`文件。`dataType`参数指定要返回的数据类型为XML。`success`回调函数在成功读取XML文件后被执行,`error`回调函数在读取XML文件出错时被执行。 在`success`回调函数中,我们首先使用`$(xml)`将返回的XML字符串转换为jQuery对象,然后使用`find`方法根据节点名称来找到我们想要的元素。使用`text`方法可以获取元素的文本内容。这个例子中我们找到`<item>`元素,然后分别获取其中的`<title>`和`<description>`元素的文本内容,并在控制台打印出来。 如果找不到本地XML文件读取XML文件出错,`error`回调函数被执行,我们在控制台打印出错误消息。 请注意,由于浏览器的同源策略限制,直接在浏览器中通过Ajax方法读取本地文件时可能会遇到问题。为了避免这些问题,你可以在本地设置一个简单的HTTP服务器,然后通过服务器地址读取XML文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值