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

时间:2013-03-29 13:09:09

标签: c# xpath html-agility-pack

我的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(., ':'))]

但值返回 1:2

如何分别提取 1 2

我也在使用HtmlNodeNavigator和HtmlAgilityPack。

有什么不对?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

我在搜索后找到了解决方案。

如果使用 HtmlNodeNavigator XPathNavigator ,可以使用以下解决方案

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

答案 1 :(得分:0)

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

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