我刚刚通过某些代码...我想知道以下代码的含义
string format = "//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";
string xpath = String.Format( format, userName, password );
xpath稍后用于创建xPathNodeIterator对象。我不太明白如何使用String.Format以及迭代时XPathNodeIterator会迭代哪个节点?
答案 0 :(得分:2)
阅读String.Format的详细信息。它
将指定字符串中的每个格式项替换为相应对象值的文本。
这意味着 xpath 将包含 format 字符串,其中格式字符串中的 {0} 将被替换值为用户名且 {1} 的值将替换为密码的值
假设
string userName = "Ehsan";
string password = "Password";
string format = "//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";
string xpath = String.Format(format, userName, password);
Xpath将等同于
//User[UserName="Ehsan" and EncryptPassword="Password"]
答案 1 :(得分:1)
大致相当于代码
string xpath = "//User[UserName=\"" + userName.ToString() + "\" and EncryptPassword=\"" + password.ToString() + "\"]";
String.Format
只是让您轻松替换测试字符串中的占位符,并可选择添加其他格式。
答案 2 :(得分:0)
只是意味着分别对userName
和password
使用{0}
和{1}
字符串"//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";
这将为您提供结果字符串:
"//User[UserName=\"John\" and EncryptPassword=\"correctHorseBatteryStaple\"]"
(假设userName的值为John
,并且......好吧,you can guess the password)。
答案 3 :(得分:0)
假设:
userName = "Peter"
password = "abc123"
您的xpath将是:
String.Format(format, userName, password)
String.Format("//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]", "Peter", "abc123")
当{0}被userName取代时," Peter"和{1}被passowrd取代," abc123",你的xpath变为:
//User[UserName="Peter" and EncryptedPassword="abc123"]
要记住的是,所有{0},{1}等都将被后面的字符串替换。