|
|
| version 1.2, 2007/08/20 09:20:15 | version 1.3, 2010/07/25 06:14:46 |
|---|---|
| Line 1 | Line 1 |
| @main[] | @main[] |
| $xdoc[^xdoc::create{<?xml version="1.0" encoding="$request:charset"?> | $xdoc[^xdoc::create{<?xml version="1.0" encoding="$request:charset"?> |
| <!DOCTYPE people> | <!DOCTYPE people> |
| <!--some comment--> | <!--some comment--> |
| <people xmlns:first="http://parser.ru/first" xmlns:second="http://parser.ru/second"> | <people xmlns:first="http://parser.ru/first" xmlns:second="http://parser.ru/second"> |
| <man first:attrname="attr value"> | <man first:attrname="attr value"> |
| <name>ПИФ^taint[&]</name> | <name>ПИФ^taint[&]</name> |
| </man> | </man> |
| <man id="1" имя="word слово"> | <man id="1" имя="word слово"> |
| <name>P«^;AF B</name> | <name>P«^;AF B</name> |
| <tst:findme xmlns:tst="http://parser.ru/tst">secret</tst:findme> | <tst:findme xmlns:tst="http://parser.ru/tst">secret</tst:findme> |
| </man> | </man> |
| </people> | </people> |
| }] | }] |
| ^dump[Origin;$xdoc] | ^dump[Origin;$xdoc] |
| ^xdoc.documentElement.firstChild.nextSibling.getAttributeNS[http://parser.ru/first;attrname] | ^xdoc.documentElement.firstChild.nextSibling.getAttributeNS[http://parser.ru/first;attrname] |
| ^xdoc.documentElement.lastChild.previousSibling.setAttributeNS[http://parser.ru/second;second:attrname2;value 2] | ^xdoc.documentElement.lastChild.previousSibling.setAttributeNS[http://parser.ru/second;second:attrname2;value 2] |
| ^dump[Added attrname2 for last 'man' element;$xdoc] | ^dump[Added attrname2 for last 'man' element;$xdoc] |
| ^xdoc.documentElement.firstChild.nextSibling.removeAttributeNS[http://parser.ru/first;attrname] | ^xdoc.documentElement.firstChild.nextSibling.removeAttributeNS[http://parser.ru/first;attrname] |
| ^dump[Removed attrname for first 'man' element;$xdoc] | ^dump[Removed attrname for first 'man' element;$xdoc] |
| ^^x.getAttrinuteNS[...;attrname2]='^xdoc.documentElement.lastChild.previousSibling.getAttributeNS[http://parser.ru/second;attrname2]'<br /> | ^^x.getAttrinuteNS[...;attrname2]='^xdoc.documentElement.lastChild.previousSibling.getAttributeNS[http://parser.ru/second;attrname2]'<br /> |
| $Attr[^xdoc.documentElement.lastChild.previousSibling.getAttributeNodeNS[http://parser.ru/second;attrname2]] | $Attr[^xdoc.documentElement.lastChild.previousSibling.getAttributeNodeNS[http://parser.ru/second;attrname2]] |
| ^$Attr.nodeValue='$Attr.nodeValue'<br /> | ^$Attr.nodeValue='$Attr.nodeValue'<br /> |
| $Attr.nodeValue[changed attribute value] | $Attr.nodeValue[changed attribute value] |
| ^dump[Changed attrname2 for last 'man' element;$xdoc] | ^dump[Changed attrname2 for last 'man' element;$xdoc] |
| #intentionally not predeclaring namespace. todo: think about that stuff | #intentionally not predeclaring namespace. todo: think about that stuff |
| $newAttr[^xdoc.createAttributeNS[http://parser.ru/third;third:attrname3]] | $newAttr[^xdoc.createAttributeNS[http://parser.ru/third;third:attrname3]] |
| $oldAttr[^xdoc.documentElement.lastChild.previousSibling.setAttributeNodeNS[$newAttr]] | $oldAttr[^xdoc.documentElement.lastChild.previousSibling.setAttributeNodeNS[$newAttr]] |
| ^if($oldAttr is xnode){wrong;right}<br /> | ^if($oldAttr is xnode){wrong;right}<br /> |
| $newAttr.nodeValue[value3] | $newAttr.nodeValue[value3] |
| ^dump[Added attrname3 for last 'man' element;$xdoc] | ^dump[Added attrname3 for last 'man' element;$xdoc] |
| $NodeList[^xdoc.getElementsByTagNameNS[http://parser.ru/tst;findme]] | $NodeList[^xdoc.getElementsByTagNameNS[http://parser.ru/tst;findme]] |
| ^show_xnodes1[$NodeList]<br /><br /> | ^show_xnodes1[$NodeList]<br /><br /> |
| $man1[^xdoc.selectSingle[/people/man[@id=1]]] | $man1[^xdoc.selectSingle[/people/man[@id=1]]] |
| ^if(^man1.hasAttribute[id]){right;wrong2!}<br /> | ^if(^man1.hasAttribute[id]){right;wrong2!}<br /> |
| ^if(^man1.hasAttributeNS[http://parser.ru/third;attrname3]){right;wrong3} | ^if(^man1.hasAttributeNS[http://parser.ru/third;attrname3]){right;wrong3} |
| <hr /> | <hr /> |
| /people/man[@id=1] ^if(^man1.hasAttributes[]){has;hasn't} attributes<br /> | /people/man[@id=1] ^if(^man1.hasAttributes[]){has;hasn't} attributes<br /> |
| $name2[^xdoc.selectSingle[/people/man[@id=1]/name]] | $name2[^xdoc.selectSingle[/people/man[@id=1]/name]] |
| /people/man[@id=1]/name ^if(^name2.hasAttributes[]){has;hasn't} attributes<br /> | /people/man[@id=1]/name ^if(^name2.hasAttributes[]){has;hasn't} attributes<br /> |
| @dump[sTitle;xdoc] | |
| ^if(def $sTitle){<h2>$sTitle</h2>} | |
| @dump[sTitle;xdoc] | ^show_xdoc2[$xdoc]<hr /> |
| ^if(def $sTitle){<h2>$sTitle</h2>} | ^show_xnode1[$xdoc]<hr /> |
| ^show_xdoc2[$xdoc]<hr /> | <hr /> |
| ^show_xnode1[$xdoc]<hr /> | |
| <hr /> | @show1[array][i;x;pattributes] |
| ^for[i](0;$array-1){ | |
| $x[$array.$i] | |
| $x.firstChild.nodeValue: | |
| @show1[array][i;x;pattributes] | $pattributes[$x.parentNode.attributes] |
| ^for[i](0;$array-1){ | ^if(^pattributes._count[]){ |
| $x[$array.$i] | $pattributes.id.name=$pattributes.id.nodeValue |
| $x.firstChild.nodeValue: | } |
| $pattributes[$x.parentNode.attributes] | <br /> |
| ^if(^pattributes._count[]){ | } |
| $pattributes.id.name=$pattributes.id.nodeValue | |
| } | @show_xnodes1[array][i] |
| <br /> | ^for[i](0;^array._count[]-1){ |
| } | ^show_xnode1[$array.$i;0;1] |
| } | |
| @show_xnode1[x;level;single][l;pairs;names] | |
| @show_xnodes1[array][i] | ^if(def $x){ |
| ^for[i](0;^array._count[]-1){ | ^for[l](0;$level-1){ ^; ^; ^; ^;} |
| ^show_xnode1[$array.$i;0;1] | ^if($x.nodeType == $xnode:ELEMENT_NODE){ |
| } | <^;$x.nodeName |
| $pairs[$x.attributes] | |
| ^if(def $pairs){ | |
| $names[^pairs._keys[]] | |
| @show_xnode1[x;level;single][l;pairs;names] | ^names.menu{ $names.key="$pairs.[$names.key].nodeValue"} |
| ^if(def $x){ | } |
| ^for[l](0;$level-1){ ^; ^; ^; ^;} | >^; |
| ^if($x.nodeType == $xnode:ELEMENT_NODE){ | }{ |
| <^;$x.nodeName | [$x.nodeType] |
| $pairs[$x.attributes] | } |
| ^if(def $pairs){ | |
| $names[^pairs._keys[]] | ^if(def $x.nodeValue){$x.nodeValue}<br /> |
| ^names.menu{ $names.key="$pairs.[$names.key].nodeValue"} | ^show_xnode1[$x.firstChild]($level+1) |
| } | ^if(!$single){ |
| >^; | ^show_xnode1[$x.nextSibling]($level) |
| }{ | } |
| [$x.nodeType] | |
| } | ^if($x.nodeType == $xnode:ELEMENT_NODE){ |
| ^for[l](0;$level-1){ ^; ^; ^; ^;}<^;/$x.nodeName>^;<br /> | |
| ^if(def $x.nodeValue){$x.nodeValue}<br /> | } |
| ^show_xnode1[$x.firstChild]($level+1) | } |
| ^if(!$single){ | |
| ^show_xnode1[$x.nextSibling]($level) | @show_xdoc2[xdoc] |
| } | #$response:body[^xdoc.file[ $.media-type[text/paf] ]] |
| <pre>^taint[html][^xdoc.string[ | |
| ^if($x.nodeType == $xnode:ELEMENT_NODE){ | # $.method[html] |
| ^for[l](0;$level-1){ ^; ^; ^; ^;}<^;/$x.nodeName>^;<br /> | # $.encoding[utF-8] |
| } | # $.omit-xml-declaration[yes] |
| } | # $.standalone[no] |
| # -$.doctype-public[-//W3C//DTD XHTML] | |
| # -$.doctype-system[/a/b/c/] | |
| # $.indent[yes] | |
| @show_xdoc2[xdoc] | # $.media-type[text/paf] |
| #$response:body[^xdoc.file[ $.media-type[text/paf] ]] | ]] |
| <pre>^taint[html][^xdoc.string[ | </pre> |
| # $.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] | |
| ]] | |
| </pre> |