TODO XSH2:
- ls --no-out ... return the serialization rather than printing it
- split [after|before] ...
- split text on a given character???
- more tests
- support DTD modification (isn't that obsolete in the 21st century?)
- add various examples of working with namespaces, e.g.
if the ttt prefix is aready declared in the context of . or
registered, one may simply do
add element ttt:para into .
and the new element ttt:para will be bound to that namespace so
doing
ls //ttt:para;
ls//*[local-name()='ttt' and
namespace-uri()='http://myuri.com'];
should both list it.
add --namespace http://myuri.com element "ttt:para" into .
is intended for adding a new element together with a
xmlns declaration of its prefix and the given namespace.
INFO COMMANDS AS XML:
xsh$ ls &{doc-info --xml}
<doc-info>
<version>1.0</version>
<encoding>utf-8</encoding>
<standalone>-1</standalone>
<compression>-1</compression>
<URI>sample/sample5.a.gz</URI>
</doc-info>
and the same for more info commands
USER-LEVEL IMPLEMENTABLE
- reload document
- untag/split element
- comment-out node (?? uncomment ??)
- swap nodes command or more generally, reorder {[2,1,3,4]} //foo
currently doable either with a sort:
$neword = {my $i=0; { map { $i => $_ } (2,1,3,4)} };
xmove &{ sort :k {$neword{position()}} //foo } replace //foo;
or, even simpler way, using variables:
$match = //foo;
move { @$match[1,0,2,3] } replace //foo;