如何在传递给HttpWebRequest之前将不同的值传递给xml节点

时间:2017-04-12 08:40:19

标签: web service

我是c#的新手并且有一个问题。我正在使用HttpWebRequest为Soap Web服务编写自动化测试,我正在传递xml请求并将xml作为字符串返回。

现在,我正在尝试将此请求xml保存在文件中但想要更改xml节点值。我正在考虑从excel表中获取不同的测试数据,然后将该数据传递给xml节点。

如果我将所有xml请求保存在类中的字符串对象中但我想从xml文件中读取请求,我可以这样做。

我不知道该怎么做。你能帮我解决这个问题或建议任何其他解决方案

1 个答案:

答案 0 :(得分:0)

有多种方法可以参数化XML并发送到Web服务。最简单的方法是使用占位符创建模板XML,然后在运行时使用excel中的数据替换占位符,如下所示。

XML:

<Name>
 <FirstName>{{FirstName}}</FirstName>
 <LastName>{{LastName}}</LastName>
</Name>

的Excel / CSV

FirstName,LastName
FName1,LName1
FName2,LName2

现在,您可以将excel中的值作为字典读取,并执行以下操作。

C#代码插图:

foreach(KeyValuePair kvp in dictionary)
 {
  xml = xml.Replace("{{" + kvp.key + "}}", kvp.value)
}

如果XML参数化不可行,您可以使用XPath导航到XML节点(使用任何XML持有者对象)并设置节点值。

相关问题