首页 > 解决方案 > Xpath 表达式中的类似条件

问题描述

在 XPath 表达式中使用类似条件时很难找到正确的语法(或者我正在以错误的方式进行处理)。

如果我使用相等运算符,它可以工作并且我可以继续前进。

/*[/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom3']/BOM/BO/Document_Lines/row/ItemCode = 'E1234' ]

我所追求的是专门尝试查看元素是否以字符'E'开头。

我努力了:

 /*[/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom3']/BOM/BO/Document_Lines/row/ItemCode = 'E*' ]

以及starts-with功能的变体,但无济于事。

希望有人能给我指点或给出正确的语法。

标签: xmlxpath

解决方案


你应该可以使用starts-with()

/*[/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom3']/BOM/BO/Document_Lines/row[starts-with(ItemCode,'E')]]

matches()使用正则表达式模式:

/*[/vpf:Msg/vpf:Body/vpf:Payload[./@id='atom3']/BOM/BO/Document_Lines/row[matches(ItemCode,'^E.*')]]

推荐阅读