我使用 xpath。 我想使用 xpath 仅匹配电子邮件(而不是整个字符串(。
所以说字符串是:
<p> You can email me at andy.pandy@gmail.com </p>
这里的大多数答案都引用了一些关于//p[contains(., '@')]
但是,这将返回<p>
标记中的整个文本。 我只想返回andy.pandy@gmail.com
排除其余部分。
使用 xpath 可以做到这一点吗?
假设您的 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();