0

想想我有几个 XPath 表达式,比如:

loan:_applicant/base:_entity/person:_locations/base:SmartRefOfLocationeJDvviUx[base:_entity/contact:_category/base:_underlyingValue='Personal' and base:_entity/contact:_confirmedByResident/common:_isConfirmed/base:_underlyingValue='true' and base:_entity/base:_process/base:_entity/base:_id/base:_underlyingValue = /loan:Application/base:_process/base:_entity/base:_id/base:_underlyingValue]/base:_entity/base:_id/base:_underlyingValue

我尝试使用/base:_entity部分作为拆分器来拆分这些表达式,如下所示:

string[] stringSeparators = new string[] { "/base:_entity" };
string[] pathTokens = xPath.Split(stringSeparators, StringSplitOptions.None);

但我需要防止在和 字符/base:_entity之间分裂。[]

我必须为上面编写的示例表达式生成以下字符串数组作为输出:

"loan:_applicant"
"/person:_locations/base:SmartRefOfLocationeJDvviUx
[base:_entity/contact:_category/base:_underlyingValue='Personal' and base:_entity/contact:_confirmedByResident/common:_isConfirmed/base:_underlyingValue='true' and base:_entity/base:_process/base:_entity/base:_id/base:_underlyingValue =  /loan:Application/base:_process/base:_entity/base:_id/base:_underlyingValue]"
"/base:_id/base:_underlyingValue"

你有什么建议吗?

4

1 回答 1

1

我会使用一些可爱的正则表达式(?<=^.*\][^\[]*|^[^\[\]]*)/base:_entity,然后使用正则表达式的方法拆分。它使用肯定的后视来检查左边的第一个括号是右括号']'还是根本没有括号。

于 2012-11-19T14:37:03.870 回答