UFT API测试如何从XML响应中提取和保存XLS值?

时间:2018-01-29 23:42:11

标签: c# xml uft-api

我是UFT API测试的新手,我需要从XML响应中提取某些值,以包含在现有的XLS中,该XLS将作为另一个测试的输入数据。 这是我的XML响应:

   <NS1:Body>
      <NS3:BuscaSaldosCaptacionOut xmlns:NS3="http://www.portal.com/ws/esb/ConsultaCuentasSaldos">
     <SaldosCaptacion>
        <NumeroCliente>51844068</NumeroCliente>
        <Cuenta>0201484326</Cuenta>
        <ProductoCuenta>01</ProductoCuenta>
        <SubProductoCuenta>0382</SubProductoCuenta>
        <Divisa>MXP</Divisa>
        <IdCuenta>0201484326</IdCuenta>
        <SaldoInicialDia>7062.42</SaldoInicialDia>
        <SaldoPromedio>30596.01</SaldoPromedio>
        <SaldoActual>17062.42</SaldoActual>
        <SaldoDisponible>17062.42</SaldoDisponible>
        <EstatusCuenta>A</EstatusCuenta>
     </SaldosCaptacion>
     <SaldosCaptacion>
        <NumeroCliente>51844068</NumeroCliente>
        <Cuenta>0201484371</Cuenta>
        <ProductoCuenta>01</ProductoCuenta>
        <SubProductoCuenta>0340</SubProductoCuenta>
        <Divisa>MXP</Divisa>
        <SaldoInicialDia>6825.11</SaldoInicialDia>
        <SaldoPromedio>8936.26</SaldoPromedio>
        <SaldoActual>6825.11</SaldoActual>
        <SaldoDisponible>6825.11</SaldoDisponible>
        <SaldoRetenido>0.00</SaldoRetenido>
        <EstatusCuenta>A</EstatusCuenta>
     </SaldosCaptacion>
     <SaldosCaptacion>
        <NumeroCliente>51844068</NumeroCliente>
        <Cuenta>0201533729</Cuenta>
        <ProductoCuenta>01</ProductoCuenta>
        <SubProductoCuenta>0363</SubProductoCuenta>
        <Divisa>MXP</Divisa>
        <SaldoInicialDia>28316.52</SaldoInicialDia>
        <SaldoPromedio>6230.52</SaldoPromedio>
        <SaldoActual>7374.52</SaldoActual>
        <SaldoDisponible>7374.52</SaldoDisponible>
        <SaldoRetenido>942.00</SaldoRetenido>
        <EstatusCuenta>A</EstatusCuenta>
     </SaldosCaptacion>
  </NS3:BuscaSaldosCaptacionOut>

我需要保存&#34; Cuenta&#34;和&#34; SaldoActual&#34;值。 (每个人),并完全忽略如何参数化它们。 &#34;写入文件&#34;选项对我不起作用。

1 个答案:

答案 0 :(得分:0)

尝试以下代码。如果它不起作用,则需要在代码中更改名称空间。我无法告诉正确的命名空间,因为您确实发布了xml文件的开头。我使用的是xml linq,它是一个Net Library。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            string xml = File.ReadAllText(FILENAME);

            XElement doc = XElement.Parse(xml);

            var results = doc.Descendants("SaldosCaptacion").Select(x => new {
                Cuenta = (string)x.Element("Cuenta"),
                SaldoActual = (decimal)x.Element("SaldoActual")
            }).ToList();

        }
    }
}