parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Re: Согласен со всем [updated]

Misha v.3 18.05.2007 10:18 / 18.05.2007 15:01

^xNode.setAttribute[valid;1|0]
=>
$bIsValid(true|false)
+ в конце один раз:
^xNode.setAttribute[valid;^if($bIsValid){1;0}]

P.S. подправил
P.P.S. у Node:foreach и Node:foreachChild изменил интерфейсы. теперь так:
@foreach[hNodeList;hNodeName;sNode;sAttr;jCode;sSeparator]
...

@foreachChild[xParent;hNodeName;sNode;sAttr;jCode;sSeparator]
...
соотв, использовать можно будет так:
^Node:foreachChild[$xDoc.documentElement;$.item[1]$.zigi[1];xNode;hAttr]{
	$xNode.nodeName: ^hAttr.foreach[k;v]{$k="$v"}[, ]
}[<br />]
приведённый пример переберёт все child у documentElement (dom методами, с помощью nextSibling, т.е. сохраняя последовательность), и если имя ноды item или zigi -- то в $xNode положит ссылку на ноду, в $hAttr -- хеш со всеми аттрибутами ноды и выполнит код, в котором это будет доступно (ну и про separator не забудет)

если не указать hAttr -- то аттрибуты доставаться не будут.

раньше можно было указать только одно nodeName и доставались не все аттрибуты, а только name. там где я это использовал потребуются лишние телодвижения, но метод в более общем виде.

Node:foreach -- аналогично, только перебираются элементы переданного хеша (можно достать с помощью xpath), также теперь будет сохранять исходный порядок (внутри for вместо foreach).