Class XmlPathParser

java.lang.Object
io.jenkins.plugins.configsplice.engine.xml.XmlPathParser

public final class XmlPathParser extends Object
Parser for the generic XML path grammar of SRS section 8.7.
 path     := element ( '.' element )* '.' selector
 element  := member index?
 member   := unquoted | quoted
 unquoted := one or more characters other than '.', '[', ']', '\'' and whitespace
 quoted   := '...'   with '' representing one literal single quote
 index    := '[' digits ']'
 selector := '@' member | '#text'
 

The same lexical rules as the JSON grammar, with two additions: an element step may carry an occurrence index, and the path must end in a selector. Requiring the terminal selector is what keeps the grammar unambiguous — without it, configuration.appSettings could mean either the element or something on it, and XML has no single obvious "value of an element".