Как грамотно сложить xpath + C#?

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 495
Благодарностей
1 304
Баллы
113
Доброго времени. Стоит задача, найти целое слово через xpath, который содержит 2 символа одновременно ' и ". Экранирование к сожалению здесь не помогает, поэтому нужно найти другое решение.

Нужно найти слово целиком: МОРО'ЖЕ"ННОЕ

C#:
string name = "МОРО'ЖЕ\"ННОЕ";

HtmlElement he = instance.ActiveTab.FindElementByXPath("//code[contains(text(),'"+ name +"')]", 0);
// Нашли текст
if (!he.IsNull)
{
    return "Нашли текст";
}
else
{
    return "Нету Текста!";
}
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 732
Благодарностей
1 401
Баллы
113
Доброго времени. Стоит задача, найти целое слово через xpath, который содержит 2 символа одновременно ' и ". Экранирование к сожалению здесь не помогает, поэтому нужно найти другое решение.

Нужно найти слово целиком: МОРО'ЖЕ"ННОЕ

C#:
string name = "МОРО'ЖЕ\"ННОЕ";

HtmlElement he = instance.ActiveTab.FindElementByXPath("//code[contains(text(),'"+ name +"')]", 0);
// Нашли текст
if (!he.IsNull)
{
    return "Нашли текст";
}
else
{
    return "Нету Текста!";
}
Нужно экранировать двойную кавычку, двойной кавычкой, а перед самым словом нужна собачка, пробуйте
C#:
string name = @"МОРО'ЖЕ""ННОЕ";

HtmlElement he = instance.ActiveTab.FindElementByXPath("//span[contains(text(),'"+ name +"')]", 0);
// Нашли текст
if (!he.IsNull)
{
    return "Нашли текст";
}
else
{
    return "Нету Текста!";
}
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 495
Благодарностей
1 304
Баллы
113
Нужно экранировать двойную кавычку, двойной кавычкой, а перед самым словом нужна собачка, пробуйте
C#:
string name = @"МОРО'ЖЕ""ННОЕ";

HtmlElement he = instance.ActiveTab.FindElementByXPath("//span[contains(text(),'"+ name +"')]", 0);
// Нашли текст
if (!he.IsNull)
{
    return "Нашли текст";
}
else
{
    return "Нету Текста!";
}
Дело в том, что пробовал - не помогло.
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 732
Благодарностей
1 401
Баллы
113
Вам нужен именно Xpath? если нет, то рассмотрите такой вариант

C#:
string text = "Нужно найти слово целиком: МОРО'ЖЕ\"ННОЕ";
string pattern = @"МОРО'ЖЕ""ННОЕ";
Match match = Regex.Match(text, pattern);
if (match.Success) return match.Value;
throw new Exception("Не удалось найти!"); //ошибка с оповещением
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 495
Благодарностей
1 304
Баллы
113
Вам нужен именно Xpath? если нет, то рассмотрите такой вариант

C#:
string text = "Нужно найти слово целиком: МОРО'ЖЕ\"ННОЕ";
string pattern = @"МОРО'ЖЕ\""ННОЕ";
Match match = Regex.Match(text, pattern);
if (match.Success) return match.Value;
throw new Exception("Не удалось найти!"); //ошибка с оповещением
Стоит задача, найти целое слово через xpath
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
389
Баллы
63
Доброго времени. Стоит задача, найти целое слово через xpath, который содержит 2 символа одновременно ' и ". Экранирование к сожалению здесь не помогает, поэтому нужно найти другое решение.

Нужно найти слово целиком: МОРО'ЖЕ"ННОЕ

C#:
string name = "МОРО'ЖЕ\"ННОЕ";

HtmlElement he = instance.ActiveTab.FindElementByXPath("//code[contains(text(),'"+ name +"')]", 0);
// Нашли текст
if (!he.IsNull)
{
    return "Нашли текст";
}
else
{
    return "Нету Текста!";
}
можно сделать динамический xpath, который будет формироваться в коде, в зависимости от исходных данных для поиска. сплит по ' и " с размещением в нужные структуры.

//code[contains(text(),"МОРО'ЖЕ") and contains(text(),'ЖЕ"ННОЕ')]
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 221
Благодарностей
660
Баллы
113
  • Спасибо
Реакции: Bot_Sculptor

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)