Как получить значения узлов из XML-файла и заполнить его с помощью innosetup?

Я пытаюсь прочитать значения из файла demo.xml с помощью innosetup и хочу заполнить некоторые значения sting. Вот мой файл demo.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<context>
<object name="sapconfig" class="com.iqc.egl.common.content.sap.SapConfig">
    <string value=""/>
    <string value="saplabs;usa"/>
    <string value="uae"/>
    <string value="002"/>   
</object>

Here i want output populated as: saplabs;usa and uae .Can anybody guide me.Your help will be appreciated.This xml is static.


person khanam    schedule 19.08.2015    source источник
comment
Различить эти атрибуты невозможно. Все они являются value атрибутами тега <string>. Единственный способ извлечь только эти два внутренних элемента — выбрать их по индексу. Но как только XML изменится и эти узлы будут перемешаны, вы получите другие значения. Вы уверены, что это то, что вы хотите?   -  person TLama    schedule 19.08.2015
comment
@TLama, этот xml останется прежним.   -  person khanam    schedule 19.08.2015
comment
@TLama, не могли бы вы рассказать мне, как читать значения на основе индекса.   -  person khanam    schedule 19.08.2015
comment
Это что-то вроде этого.   -  person TLama    schedule 20.08.2015
comment
@TLama, большое спасибо. Ваша ссылка великолепна. Она работает нормально.   -  person khanam    schedule 08.09.2015


Ответы (1)


Создайте экземпляр Msxml2.DOMDocument для доступа к XML-файлу, как описано здесь Как читать и записывать значения узла XML-документа?

Вы можете перебирать дочерние узлы, используя get_childNodes (https://msdn.microsoft.com/en-us/library/windows/desktop/dd873811%28v=vs.85%29.aspx) и используйте get_attribute (https://msdn.microsoft.com/en-us/library/windows/desktop/dd873626%28v=vs.85%29.aspx') для чтения «значение».

person Wosi    schedule 19.08.2015
comment
Wosi, я не могу понять эти ссылки из-за того, что эти примеры написаны на С++. - person khanam; 19.08.2015
comment
Вот несколько фрагментов о том, как работать с MSXML с помощью Delphi: gerixsoft.com/blog/delphi/ msxml В Pascal Script это выглядит почти так же, за исключением того, что вы используете Variant вместо IXMLDOMNode и IXMLDOMNodeList. - person Wosi; 19.08.2015
comment
Воси, innosetup и Delphi одинаковы? - person khanam; 19.08.2015
comment
OKie, я попробую, могу ли я использовать вариант вместо IXMLDOMNODe, IXMLDOMNodeList?. - person khanam; 19.08.2015
comment
Да, ты можешь. Variant — это тип данных общего назначения. Он создан для всего: delphibasics.co.uk/ RTL.asp?Name=Вариант - person Wosi; 19.08.2015