【问题标题】:HTA Loading XMLHTA 加载 XML
【发布时间】:2013-12-24 18:58:17
【问题描述】:

我的任务是加载一个 xml 文档并允许用户修改 xml 的内容并在用户完成后保存。保存后,我需要通过电子邮件将该 xml 文件管理员发送到网站上。我知道我可以使用服务器端代码加载、修改和保存 xml 文档,但我的任务是找到一种仅使用 javascript 来执行此操作的方法。这是一个只有特定用户才能使用的 Intranet 应用程序,所以我决定使用 html 应用程序。 我首先开始使用 VS 创建一个网站来执行此操作,但后来发现无法使用 javascript 保存 xml 文档,因此我切换到了 hta 应用程序。 在 VS 中,我能够加载 xml 文档并在基诺网格内显示结果,但无法保存 xml。在我的 html 应用程序中,我可以保存一个 xml 文档,但它不会加载 xml 及其所有节点。

<?xml version="1.0" encoding="iso-8859-1"?>
<rpp>
  <city name="SomeName">
    <property>Owner</property>
    <location>Address</location>
    <phone>phone</phone>
  </city>
</rpp>

Javascript:

var xml = loadXMLDoc("rpp.xml");
function loadXMLDoc(dname) {
    if (window.ActiveXObject) {
        xhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    else {
        xhttp = new XMLHttpRequest();
    }
    xhttp.open("GET", dname, false);
    if (xhttp.overrideMimeType)
        xhttp.overrideMimeType('text/xml');
    xhttp.send("");
    var xmlDoc = xhttp.responseXML;
    if (!xmlDoc) {
        if (isIE) {
            xmlDoc = getMSXmlParser();
            xmlDoc.async = false;
            xmlDoc.loadXML(xhttp.responseText);
        }
        else
            xmlDoc = (new DOMParser()).parseFromString(xhttp.responseText, 'text/xml');
    }
    return xmlDoc;
}
//code came from this site
//http://blog-rat.blogspot.com/2010/11/xmlhttprequestresponsexml-returns-null.html
function getMSXmlParser() {
    var parser = ['Msxml2.DOMDocument.6.0',
                  'Msxml2.DOMDocument.5.0',
                  'Msxml2.DOMDocument.4.0',
                  'Msxml2.DOMDocument.3.0',
                  'MSXML2.DOMDocument',
                  'Microsoft.XMLDOM']; // the same as MSXML.DOMDocument
    for (var i in parser) {
        try {
            var xParser = new ActiveXObject(parser[i]);
            if (xParser) {
                return xParser;
            }
        }
        catch (e) { }
    }
    return null;
}

当我用 VS 加载我的 xml 时,我会检索所有节点及其值,并且能够在剑道网格中显示该信息。 当我从 hta 加载我的 xml 时,没有 childNodes。

任何帮助将不胜感激。 谢谢。

【问题讨论】:

    标签: xml hta


    【解决方案1】:

    您可能需要考虑在 HTA 中使用 vbscript。这是一个很好的资源链接,其中包含使用 vbscript 加载、保存、附加和编辑 xml 的代码。

    http://technet.microsoft.com/en-us/magazine/2008.02.heyscriptingguy.aspx?pr=PuzzleAnswer

    此外,如果您不熟悉 HTML 应用程序,则可以从 Microsoft 下载 HTA Helpomatic。这是一个包含特定 HTA 代码的演示 HTA。

    http://www.microsoft.com/en-gb/download/details.aspx?id=17332

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      相关资源
      最近更新 更多