用Regex捕捉Xpath条件

本文关键字:条件 Xpath 捕捉 Regex | 更新日期: 2023-09-27 18:01:32

我想捕捉Xpath表达式中的条件。例如,在下面的表达式中:

loan:_applicant/base:_entity/person:_phones/base:SmartRefOfPhoneeJDvviUx[base:_entity/contact:_category/base:_underlyingValue='Personal' and base:_entity/contact:_isMobile/base:_underlyingValue!='true']/base:_entity

I want to catch:

base:_entity/contact:_category/base:_underlyingValue='Personal'

base:_entity/contact:_isMobile/base:_underlyingValue!='true'

操作符在Xpath示例中可以是

是否有可能使用Regex获得条件?

用Regex捕捉Xpath条件

Xpath谓词用方括号括起来,因此

string regex=@"'[.*']";
string predicate=Regex.Match(input, regex).Value;//assuming there is a match
regex=@"'s(and|or)'s";
string[] conditions=Regex.Split(predicate, regex);

XPath 2.0具有正则表达式匹配的函数,例如matches()、replace()和tokenize()。这些在XPath 1.0中不可用。