Получение значения узла из файла XML в TestComplete

Моя структура XML файлов такова.

<!--?xml version="1.0" encoding="utf-8" ?-->
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:core="http://x.y.com/xy/xyz">
<atom:title>TestTitle</atom:title>
<atom:link rel="a" href="$a_u">
<atom:link rel="ot" href="$ou">
<atom:link rel="db" type="app/c.d.p+xml" href="e.xml"> <atom:inline> <payload xmlns="http://www.yyy.com/xxx" model="https://xxxx.yyy.com/api/te/db/et/r1"> <field name="asset.title"> <value>DP</value> </field> <field> <value>xxx</value> </field> | | | </payload></atom:inline> </atom:link>
</atom:link></atom:link></atom:entry>

Я пытаюсь получить значение DP filed, чье name="asset.title"

Последовал этот Док и пытался, но не повезло..

http://support.smartbear.com/viewarticle/57106/

http://support.smartbear.com/viewarticle/58850/

Как я могу получить это значение.Заранее благодарим за любой указатель или помощь.

1 ответ

Необходимо указать области имен выбора при работе с XML, который имеет пространство имен. Следующий скрипт должен работать на вас.

function test()
{ var fileName = "c:\\test.xml"; var doc = Sys.OleObject("Msxml2.DOMDocument.6.0"); doc.setProperty("SelectionNamespaces", "xmlns:atom='http://www.w3.org/2005/Atom' xmlns:ns='http://www.yyy.com/xxx'"); doc.load(fileName); var value = doc.selectSingleNode("/atom:entry/atom:inline/ns:payload/ns:field[@name='asset.title']/ns:value").text; Log.Message(value);
}

licensed under cc by-sa 3.0 with attribution.