xpath中只转义单引号和双引号两个字符
//you may want to use constants like HtmlTextWriter.SingleQuoteChar and
//HtmlTextWriter.DoubleQuoteChar intead of strings like "'" and "\""
private static string GenerateConcatForXPath(string a_xPathQueryString)
{
string returnString = string.Empty;
string searchString = a_xPathQueryString;
char[] quoteChars = new char[] { '\'', '"' };
int quotePos = searchString.IndexOfAny(quoteChars);
if (quotePos == -1)
{
returnString = "'" + searchString + "'";
}
else
{
returnString = "concat(";
while (quotePos != -1)
{
string subString = searchString.Substring(0, quotePos);
returnString += "'" + subString + "', ";
if (searchString.Substring(quotePos, 1) == "'")
{
returnString += "\"'\", ";
}
else
{
//must be a double quote
returnString += "'\"', ";
}
searchString = searchString.Substring(quotePos + 1,
searchString.Length - quotePos - 1);
quotePos = searchString.IndexOfAny(quoteChars);
}
returnString += "'" + searchString + "')";
}
return returnString;
}