Xpath - извлекает адрес электронной почты из длинной строки, но исключая остальную часть строки - PullRequest
0 голосов
/ 27 июня 2018

Я использую xpath. Я хочу сопоставить только электронную почту (а не всю строку) с помощью xpath.

Так скажем, строка:

<p> You can email me at andy.pandy@gmail.com </p>

Большинство ответов здесь приводят что-то вроде //p[contains(., '@')]

Однако это вернет весь текст в теге <p>. Я хочу вернуть только andy.pandy@gmail.com, исключая остальные.

Возможно ли это с помощью xpath?

1 Ответ

0 голосов
/ 27 июня 2018

Если ваш XML выглядит примерно так:

<?xml version='1.0' encoding='UTF-8'?>
<data>
    <p>notanemail</p>
    <p>email@example.com</p>
    <p>nothing</p>
</data>

Вы можете позвонить:

XElement xmlData = XElement.Load("mails.xml");
var emailList = xmlData.XPathSelectElements(@"//p[contains(., '@')]")
   .Select(p => p.Value)
   .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...