如何应用substring-after和substring-before函数

本文关键字:substring-after substring-before 函数 应用 何应用 | 更新日期: 2023-09-27 18:06:33

我的html结构如下

<td class="opps">1:2</td>

我正在尝试用XPath拆分td的值,如下所示

.//*[contains(@class, 'opps')]/text()[normalize-space(substring-after(., ':'))]
.//*[contains(@class, 'opps')]/text()[normalize-space(substring-before(., ':'))]

但是value返回1:2

如何分别提取12 ?

我也使用HtmlNodeNavigator和htmllagilitypack。

怎么了?

提前感谢。

如何应用substring-after和substring-before函数

我多找了一下才找到解决办法。

如果使用HtmlNodeNavigatorXPathNavigator,解决方案如下

string _result1 = <HtmlNodeNavigator>.Evaluate("substring-after(.//*[contains(@class, 'opps')]/text(), ':')") as string; 
string _result2 = <XPathNavigator>.Evaluate("substring-before(.//*[contains(@class, 'opps')]/text(), ':')") as string;

为了以防万一,您也可以使用c#方法。例如,

string strVal = "1:2";
string[] splitedStrArr = strVal.Split(':'); 
// you have now 2 elements inside the array. You can use it separately