Загружать локальные значения XML-файла в переменные Javascript - PullRequest
0 голосов
/ 29 декабря 2011

Попытка чтения различных значений из локального XML-файла конфигурации (c: \ folder \ xmlfile.xml) и помещения их в переменные JavaScript в HTA, который также работает на том же локальном компьютере.

ЛокальныйФайл 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.

Я пытался весь день, и, возможно, мое Google-фу не так сильно, как я думал, но, похоже, не может найти никакого реального направления.

Я дошел до:

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

Я не совсем уверен, что даже это правильно, но я не смог найти инструкции о том, как анализировать значениякак только файл загружен.

Спасибо, что нашли время, чтобы прочитать и за вашу помощь.

1 Ответ

0 голосов
/ 17 января 2012

Ваш 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');
...