Spaces:
Sleeping
Sleeping
| <!-- ==========================================================================\ | |
| | | |
| | To learn how to make your own language parser, please check the following | |
| | link: | |
| | https://npp-user-manual.org/docs/function-list/ | |
| | | |
| \=========================================================================== --> | |
| <NotepadPlus> | |
| <functionList> | |
| <!-- ========================================================= [ XML ] --> | |
| <!-- XML - eXtensible Markup Language --> | |
| <parser | |
| displayName="XML Node" | |
| id ="xml_node" | |
| commentExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`) | |
| (?:\x3C!--(?:[^\-]|-(?!-\x3E))*--\x3E) # Multi Line Comment | |
| " | |
| > | |
| <function | |
| mainExpr="(?x) # Utilize inline comments (see `RegEx - Pattern Modifiers`) | |
| \x3C # begin of node | |
| (?: | |
| (?-i:\?XML) # only name of root node is allowed to start with a question mark | |
| | \w+(?::\w+)? # a node name can contain a colon e.g. `xs:schema` | |
| ) | |
| (?: # match attributes | |
| \s+ # at least one whitespace before attribute-name | |
| \w+(?::\w+)? # an attribute name can contain a colon e.g. `xmlns:xs` | |
| \h*=\h* # name-value separator can be surrounded by blanks | |
| (?: # quoted attribute value, embedded escaped quotes allowed... | |
| \x22(?:[^\x22\x5C]|\x5C.)*?\x22 # ...double quoted... | |
| | \x27(?:[^\x27\x5C]|\x5C.)*?\x27 # ...single quoted | |
| ) | |
| )+ # only match nodes with at least one attribute | |
| " | |
| > | |
| <functionName> | |
| <nameExpr expr="[^\x3C]*" /> | |
| </functionName> | |
| </function> | |
| </parser> | |
| </functionList> | |
| </NotepadPlus> |