parser

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

 

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

локальный result сразу выкидывает все whitespace

Misha v.3 17.06.2010 04:00 / 17.06.2010 04:51

а это для данного метода очень даже неплохо, потому что он выполняется кучу раз.


новая либа проблему не решила, я уже попробовал %-)
возможно проблема в неэффективных парсерных обёртках для xpath. надо будет смотреть.


я для подобных задач (xml->hash) постоянно пользуюсь DOM-ом (на рессурсоёмкость xpath наступил давным давно). да и xpath тут по сути не нужен, ведь тут простой обход дерева.


в приведённом ранее методе, использующем DOM операции можно сделать ещё одну небольшую оптимизацию (на обсуждаемом xml-е выигрывается ещё примерно 1 МБ):
-	^if($xNode.nodeName eq "ids" || ^xNode.getAttribute[type] eq "array"){
+	^if($xNode.nodeName eq "ids" || ($xNode.attributes && ^xNode.getAttribute[type] eq "array")){
или даже так (знаю, что это не соответствует тому, о чем говорится в документации):
-	^if($xNode.nodeName eq "ids" || ^xNode.getAttribute[type] eq "array"){
+	^if($xNode.nodeName eq "ids" || $xNode.attributes.type.nodeValue eq "array"){