【问题标题】:How to parse XML for Chrome browser using javascript如何使用 javascript 为 Chrome 浏览器解析 XML
【发布时间】:2022-11-21 03:29:13
【问题描述】:

chrome浏览器如何用JS解析xml并输出到html表单域?我的脚本适用于 MS 即。


var xml_data_URL="http_myxml.xml";
var Polling;
var Ptr411Name="c_date";
var Ptr52901Name="ev1_sup";

var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = true;
 
function GetData()
{
  if(xml.readyState==4)  // Is the load completed?
  {
    xml.load(xml_data_URL);
    Polling = true; 
  }
  setTimeout("GetData()",16000);
}
 
function DisplayData()
{
  var xmlElements;
  var svgElement;
  // Check for XML file update 
  if(!Polling) return;
       
  if(xml.readyState==4)  // Is the load completed?
  {
    Polling = false;
  
    var err = xml.parseError; 
    if (err.errorCode == 0)
    { 
    
    // update form fields   
xmlElements = xml.getElementsByTagName(Ptr411Name);
document.display.c_date.value=xmlElements.item(0).text;

xmlElements = xml.getElementsByTagName(Ptr52901Name);
document.display.ev1_sup.value=xmlElements.item(0).text;

if(xmlElements.item(0).text == 0)    
      window.status = "x";
    }
    else
    {
      alert("advice: xml data load timed out: "+err.reason);
    }
  }
  setTimeout("DisplayData()",8000);
}

此代码适用于浏览器在相应的 html 表单字段中显示 xmlelement 数据 c_date 和 ev1_sup。如何使它适用于 Chrome?

【问题讨论】:

  • 您能否将一些 XML 添加到您的问题中。

标签: javascript xml google-chrome


【解决方案1】:

在此示例中,我加载了 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<fields>
  <field type="text" name="title"/>
  <field type="text" name="description"/>
</fields>

为了加载 XML 文档,我使用 fetch API。对于示例,我将真实 URL 替换为数据 URL,以表明它在 ST 上有效。

var xml_data_URL = 'data:application/xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGZpZWxkcz4KPGZpZWxkIHR5cGU9InRleHQiIG5hbWU9InRpdGxlIi8+CjxmaWVsZCB0eXBlPSJ0ZXh0IiBuYW1lPSJkZXNjcmlwdGlvbiIvPgo8L2ZpZWxkcz4=';

document.addEventListener('DOMContentLoaded', e => {
  fetch(xml_data_URL).then(res => res.text()).then(text => {
    let parser = new DOMParser();
    let xmlDoc = parser.parseFromString(text, "application/xml");
    [...xmlDoc.documentElement.children].forEach(node => {
      let type = node.getAttribute('typw');
      let name = node.getAttribute('name');
      document.forms.form01.innerHTML += `<label>${name}: <input type="${type}"
        name="${name}"></label>`;
    });
  });
});
&lt;form name="form01"&gt;&lt;/form&gt;

【讨论】:

    猜你喜欢
    • 2011-12-18
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2022-01-17
    • 2011-09-06
    相关资源
    最近更新 更多