2017-04-12 62 views
2

我是新来的C#,并得到了一个问题。我正在使用HttpWebRequest为Soap Web服务编写自动化测试,并且我正在通过xml请求并将xml作为字符串返回。如何在传递给HttpWebRequest之前将不同的值传递给xml节点

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

我可以做到这一点,如果我保存在一个类内的字符串对象的所有XML请求,但我想从XML文件读取请求。

我不知道该怎么做。您能否帮我解决这个问题或提供任何其他解决方案

回答

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节点并设置该节点的值。