【问题标题】:Load local XML file values into Javascript variables将本地 XML 文件值加载到 Javascript 变量中
【发布时间】:2011-12-28 21:34:28
【问题描述】:

尝试从本地 (c:\folder\xmlfile.xml) XML 配置文件中读取各种值,并将它们放入同样在同一本地计算机上运行的 HTA 中的 JavaScript 变量中。

本地 XML 文件包含:

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <Module name="LocalDB">
        <Property name="Server" value="localhost\application" />
        <Property name="Database" value="applicationdb" />
        <Property name="UID" value="standarduser" />
        <Property name="Password" value="defaultpw" />
   </Module>
</configure>

打开并读取 XML 文件后,我需要将“applicationdb”、“standarduser”、“defaultpw”等各种值放入 JavaScript 变量中。

我整天都在尝试,也许我的 google-fu 没有我想象的那么强大,但似乎找不到任何真正的方向。

我已经做到了:

xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
while(xmlDOC.readyState !=4) {};
xmlDOC=loadXMLDoc("xmlfile.xml");

即使这是正确的,我也不完全确定,但我无法找到有关如何在文件加载后解析值的说明。

感谢您抽出宝贵时间阅读并提供帮助。

【问题讨论】:

标签: javascript xml local hta


【解决方案1】:

您的 xmlfile.xml 不是有效的 xml 文件。关闭配置标签拼写错误,将无法加载。一旦你解决了这个问题,你应该考虑使用 XPATH 查询来搜索你的 XML。

var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.load('xmlfile.xml'); // TODO: validate true
var xmlElem = xmlDoc.documentElement; // TODO: validate not null
var xmlServer = xmlElem.selectSingleNode('//Property[@name=\'Server\']');
var strServer = xmlServer.getAttribute('value');

【讨论】:

  • 谢谢!您的代码完美运行。我上面列出的 XML 文件不是复制/粘贴,因此真实文件确实包含有效的结束标记。我使用了一种不同的方法,并且能够让它工作,但是你的代码更干净,所以我可以切换到这个。
猜你喜欢
  • 2013-01-07
  • 2021-01-09
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多