MSXML SelectSingleNode возвращает все значения

При выполнении этой команды:

objDoc.SelectSingleNode ("//ProfileSettings/Form[@name='frmViewMailMessages']/Control[@name='subMailMessages']/Height")

С XML objDoc:

<ProfileSettings>
    <Form name="frmViewMailMessages">
        <Control name="subMailMessages">
            <Height>4175</Height>
        </Control>
        <Control name="subMailMessage">
            <Height>4500</Height>
            <Top>3975</Top>
        </Control>
    </Form>
</ProfileSettings>

objDoc.Text возвращает строку, содержащую все добавленные значения:

417545003975

Я пытаюсь получить только значение 4175 из frmViewMailMessages->subMailMessages->Height

Любые идеи? Спасибо


person user3125278    schedule 21.12.2013    source источник


Ответы (1)


Я думаю, что знаю, почему .... вы используете неправильный объект. Вместо использования objDoc вам нужно установить это в Node, а затем получить значение. Что-то вроде ниже

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.SetProperty "SelectionLanguage", "XPath"
xmlDoc.Async = False
xmlDoc.Load("C:\Users\Pankaj\Desktop\test.xml")

Set nodeXML = xmlDoc.SelectSingleNode("//ProfileSettings/Form[@name='frmViewMailMessages']/Control[@name='subMailMessages']/Height")
msgbox nodeXML.Text
person Pankaj Jaju    schedule 21.12.2013
comment
Спасибо, я смог получить это так: Set nodeXML = objDoc.SelectSingleNode(//ProfileSettings/Form[@name=' & frm.NAME & ']/Control[@name=' & ControlName & ']/ & Property ) MsgBox nodeXML.Text - person user3125278; 21.12.2013