2011-12-28 35 views
0

試圖從本地(C:\文件夾\ xmlfile.xml)讀取各種值的XML配置文件,並把它們轉換成JavaScript變量也是同樣的本地機器上運行的HTA內。加載本地XML文件中的值轉換爲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> 

我需要把不同的值,如 「applicationdb」, 「standarduser」, 「defaultpw」,爲JavaScript變量打開和讀取XML文件之後。

我一直在嘗試了一整天,也許我的谷歌福是沒有那麼強,我想,但似乎無法找到任何真正的方向。

據我已經收到如:

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

我不能完全肯定,甚至認爲是正確的,但我一直沒能找到有關如何一旦文件被解析值指令加載。

感謝您抽出時間來閱讀和您的幫助。

+0

這是有趣的文章,這可以幫助你http://www.hiteshagrawal.com/javascript/javascript-parsing-xml-in-javascript – kosa 2011-12-28 21:38:04

+0

Mqybe這將幫助:http://www.w3schools.com /xml/xml_parser.asp – Kristian 2011-12-28 21:38:59

+0

加載本地文件不應該是可能的IMO。會非常不安全。甚至沒有本地頁面。方便的支持表格:http://www.steveborn.com/codenotes/LoadingXML.htm – Rudie 2011-12-28 21:43:04

回答

0

您的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'); 
+0

謝謝!你的代碼完美地工作。上面列出的XML文件不是複製/粘貼,因此真實文件包含有效的結束標記。我使用了一種不同的方法,並能夠讓它工作,但是你的代碼更乾淨,所以我可以切換到這個。 – szdmgdev 2012-01-24 13:37:42