-1

我只是在浏览某些代码...我想知道以下代码的含义

string format = "//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";
string xpath = String.Format( format, userName, password );    

xpath 稍后用于创建 xPathNodeIterator 对象。我不太明白如何使用 String.Format 以及如果我迭代 XPathNodeIterator 将迭代哪个节点?

4

4 回答 4

2

阅读String.Format的详细信息。它

将指定字符串中的每个格式项替换为对应对象值的等效文本。

这意味着xpath将包含格式 字符串,其中格式字符串中的{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"]
于 2014-03-27T07:51:01.237 回答
1

大致相当于代码

string xpath = "//User[UserName=\"" + userName.ToString() + "\" and EncryptPassword=\"" + password.ToString() + "\"]";

String.Format只是让您可以轻松地替换测试字符串中的占位符,并且可以选择添加其他格式。

于 2014-03-27T07:54:03.983 回答
0

它只是表示“在字符串中分别使用userNamepassword用于{0}{1}"//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";

这将为您提供结果字符串:

"//User[UserName=\"John\" and EncryptPassword=\"correctHorseBatteryStaple\"]"

(假设 userName 的值为John, 并且...好吧,您可以猜到密码)。

于 2014-03-27T07:56:49.630 回答
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} 等都将被后面的字符串替换。

于 2014-03-27T08:20:28.393 回答