parser

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

 

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

Ответ

MoKo 07.11.2016 02:03

Посмотрел код php, они всегда копируют xdoc перед тем, как использовать
его в качестве шаблона (что понятно весьма накладно), поэтому у них проблема не воспроизводится:

/* libxslt uses _private, so we must copy the imported
stylesheet document otherwise the node proxies will be a mess */
newdoc = xmlCopyDoc(doc, 1);
xmlNodeSetBase((xmlNodePtr) newdoc, (xmlChar *)doc->URL);
prevSubstValue = xmlSubstituteEntitiesDefault(1);
prevExtDtdValue = xmlLoadExtDtdDefaultValue;
xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;

sheetp = xsltParseStylesheetDoc(newdoc);

Кстати мы тоже используем _private, но возможно менее активно чем php, надо будет добавить тест на то, как оно себя ведет в таком случае.