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

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 707
Благодарностей
1 449
Баллы
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 977
Благодарностей
1 726
Баллы
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 "Нету Текста!";
}
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 707
Благодарностей
1 449
Баллы
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 977
Благодарностей
1 726
Баллы
113
Вам нужен именно Xpath? если нет, то рассмотрите такой вариант

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

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 707
Благодарностей
1 449
Баллы
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
Благодарностей
394
Баллы
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 520
Благодарностей
883
Баллы
113
  • Спасибо
Реакции: Bot_Sculptor

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