@main[] $xdoc[^xdoc::create{ ПИФ^taint[&] P«^;AF B secret }] ^dump[Origin;$xdoc] ^xdoc.documentElement.firstChild.nextSibling.getAttributeNS[http://parser.ru/first;attrname] ^xdoc.documentElement.lastChild.previousSibling.setAttributeNS[http://parser.ru/second;second:attrname2;value 2] ^dump[Added attrname2 for last 'man' element;$xdoc] ^xdoc.documentElement.firstChild.nextSibling.removeAttributeNS[http://parser.ru/first;attrname] ^dump[Removed attrname for first 'man' element;$xdoc] ^^x.getAttrinuteNS[...;attrname2]='^xdoc.documentElement.lastChild.previousSibling.getAttributeNS[http://parser.ru/second;attrname2]'
$Attr[^xdoc.documentElement.lastChild.previousSibling.getAttributeNodeNS[http://parser.ru/second;attrname2]] ^$Attr.nodeValue='$Attr.nodeValue'
$Attr.nodeValue[changed attribute value] ^dump[Changed attrname2 for last 'man' element;$xdoc] #intentionally not predeclaring namespace. todo: think about that stuff $newAttr[^xdoc.createAttributeNS[http://parser.ru/third;third:attrname3]] $oldAttr[^xdoc.documentElement.lastChild.previousSibling.setAttributeNodeNS[$newAttr]] ^if($oldAttr is xnode){wrong;right}
$newAttr.nodeValue[value3] ^dump[Added attrname3 for last 'man' element;$xdoc] $NodeList[^xdoc.getElementsByTagNameNS[http://parser.ru/tst;findme]] ^show_xnodes1[$NodeList]

$man1[^xdoc.selectSingle[/people/man[@id=1]]] ^if(^man1.hasAttribute[id]){right;wrong2!}
^if(^man1.hasAttributeNS[http://parser.ru/third;attrname3]){right;wrong3}
/people/man[@id=1] ^if(^man1.hasAttributes[]){has;hasn't} attributes
$name2[^xdoc.selectSingle[/people/man[@id=1]/name]] /people/man[@id=1]/name ^if(^name2.hasAttributes[]){has;hasn't} attributes
@dump[sTitle;xdoc] ^if(def $sTitle){

$sTitle

} ^show_xdoc2[$xdoc]
^show_xnode1[$xdoc]

@show1[array][i;x;pattributes] ^for[i](0;$array-1){ $x[$array.$i] $x.firstChild.nodeValue: $pattributes[$x.parentNode.attributes] ^if(^pattributes._count[]){ $pattributes.id.name=$pattributes.id.nodeValue }
} @show_xnodes1[array][i] ^for[i](0;^array._count[]-1){ ^show_xnode1[$array.$i;0;1] } @show_xnode1[x;level;single][l;pairs;names] ^if(def $x){ ^for[l](0;$level-1){ ^; ^; ^; ^;} ^if($x.nodeType == $xnode:ELEMENT_NODE){ <^;$x.nodeName $pairs[$x.attributes] ^if(def $pairs){ $names[^pairs._keys[]] ^names.menu{ $names.key="$pairs.[$names.key].nodeValue"} } >^; }{ [$x.nodeType] } ^if(def $x.nodeValue){$x.nodeValue}
^show_xnode1[$x.firstChild]($level+1) ^if(!$single){ ^show_xnode1[$x.nextSibling]($level) } ^if($x.nodeType == $xnode:ELEMENT_NODE){ ^for[l](0;$level-1){ ^; ^; ^; ^;}<^;/$x.nodeName>^;
} } @show_xdoc2[xdoc] #$response:body[^xdoc.file[ $.media-type[text/paf] ]]
^taint[html][^xdoc.string[
#	$.method[html]
#	$.encoding[utF-8]
#  	$.omit-xml-declaration[yes]
#	$.standalone[no]
#	-$.doctype-public[-//W3C//DTD XHTML]
#	-$.doctype-system[/a/b/c/]
#	$.indent[yes]
#	$.media-type[text/paf]
]]