* Much better support for XPATH 1.0 according to https://www.w3.org/TR/xpath-10 using yacc/lex
* NOTE: Due to an error in the previous implementation, all XPATH calls on the form `x[a=str]` where `str` is a string (not a number or XML symbol), must be changed to: `x[a='str'] or x[a="str"]`
* This includes all calls to `xpath_vec, xpath_first`, etc.
* All calls to cli_copy_config in CLI spec files must replace 2nd argument from `x[%s=%s]` to `x[%s='%s']`
* The old API is stillenabled. To define the new, define XPATH_USE_NEW in include/clixon_custom.h and recompile
This commit is contained in:
parent
5d7c4a8d18
commit
ba7f84afee
29 changed files with 395 additions and 79 deletions
|
|
@ -64,7 +64,7 @@
|
|||
*
|
||||
* Alternative for xmlkeyfmt would be eg:
|
||||
* RESTCONF: /interfaces/interface=%s/ipv4/address/ip=%s (used)
|
||||
* XPATH: /interfaces/interface[name=%s]/ipv4/address/[ip=%s]
|
||||
* XPATH: /interfaces/interface[name='%s']/ipv4/address/[ip'=%s']
|
||||
*
|
||||
* Paths through the code (for coverage)
|
||||
* cli_callback_generate +----------------+
|
||||
|
|
@ -375,7 +375,7 @@ get(char *dbname,
|
|||
arg = valvec[j++];
|
||||
if (uri_percent_decode(arg, &argdec) < 0)
|
||||
goto done;
|
||||
cprintf(cb, "[%s=%s]", cv_string_get(cvi), argdec);
|
||||
cprintf(cb, "[%s='%s']", cv_string_get(cvi), argdec);
|
||||
free(argdec);
|
||||
argdec=NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue