Lassy XPATH
Module for working with XPATH queries on LASSY XML files. It includes a graphical editor including auto completion, macros and validation based on Ace, a parser and validator based on ts-xpath and an "extractinator" for determining XPATHs to get each node from the returned tree separately. The functionality can be used as an Angular module, using JQuery or as plain JavaScript.
Angular 2+
(Only tested in Angular 5)
Import the module:
import { LassyXPathModule } from 'lassy-xpath/ng';
@NgModule({
imports: [LassyXPathModule]
})
export class AppModule {}
Includes the services:
import { MacroService, ExtractinatorService, ValueEvent } from 'lassy-xpath/ng';
@Component()
export class ExampleComponent {
constructor(
macroService: MacroService,
private extractinatorService: ExtractinatorService) {
macroService.loadDefault();
}
inputChanged(event: ValueEvent) {
this.valid = !event.error;
this.value = event.xpath;
console.log(this.extractinatorService.extract(event.xpath));
}
}
Embeds an editor:
<lx-editor [value]="value" (onChange)="inputChanged($event)" autofocus="true"></lx-editor>
Use the ParserService
for parsing/validating a LASSY XML XPath.
JQuery
Make sure the following scss is included:
@import 'lassy-xpath/scss/xpath-editor';
Extend JQuery by importing lassy-xpath/jquery
.
import 'lassy-xpath/jquery';
let $xpathEditor = $('.xpath-editor');
$xpathEditor.xpathEditor({
macrosUrl: $xpathEditor.data('macros-url')
});
let $xpathVariables = $('.xpath-variables');
$xpathVariables.xpathVariables({
formName: $xpathVariables.data('name'),
source: $xpathVariables.data('source'),
});