如何在传递给HttpWebRequest之前将不同的值传递给xml节点
问题描述:
我是新来的C#,并得到了一个问题。我正在使用HttpWebRequest为Soap Web服务编写自动化测试,并且我正在通过xml请求并将xml作为字符串返回。如何在传递给HttpWebRequest之前将不同的值传递给xml节点
现在,我想通过这个请求xml保存在文件中,但想要更改xml节点值。我正在考虑从Excel工作表获取不同的测试数据,然后将该数据传递给xml节点。
我可以做到这一点,如果我保存在一个类内的字符串对象的所有XML请求,但我想从XML文件读取请求。
我不知道该怎么做。您能否帮我解决这个问题或提供任何其他解决方案
答
有不同的方式来参数化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节点并设置该节点的值。