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

  • Автор темы Автор темы The_vAe
  • Дата начала Дата начала

The_vAe

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

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

C#:
Развернуть Свернуть Копировать
string name = "МОРО'ЖЕ\"ННОЕ";

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

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

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

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

Стоит задача, найти целое слово через xpath
 
Доброго времени. Стоит задача, найти целое слово через 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(),'ЖЕ"ННОЕ')]
 

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