XSLT: xsltApplyStylesheet возвращает значение null

У меня есть файл xml и xsl. Вывод xsl — это просто текст, т. е. если какие-то условия не выполняются, результатом является просто описание ошибки. Если все условия выполняются, результат нулевой. Если я запускаю это в xsltproc, все работает нормально.

Однако, если я запускаю это с помощью libxslt, используя функцию xsltApplyStylesheet, я вижу пустой результат. Входной xml для xsltApplyStylesheet создается динамически в коде. Файл xsl читается с помощью xsltParseStylesheetFile. (Я использовал xmlDocDumpFormatMemory как для xml, так и для вывода xsltParseStylesheetFile-> doc, оба вроде в порядке). Я пробовал xsltSaveResultToString после ApplyStylesheet, тоже не работает.

В чем здесь может быть проблема?

Фрагмент кода:

  xmldoc = xmlNewDoc(BAD_CAST "1.0");
  c = xmlNewNode(NULL, BAD_CAST "Company");
  xmlAddChild(c, node);  //node is another child in XML
  xmlAddChild(c, d);  //d is another child in xml
  xmlDocSetRootElement(xmldoc, c);
  .....

  xsl = xsltParseStylesheetFile("xsl.file");
  ....
  output = xsltApplyStylesheet(xsl, xmldoc, NULL);
  ....
  //output has just "<?xml version="1.0"?>"

TIA и ценим вашу помощь!


person Foo Bar    schedule 06.03.2012    source источник


Ответы (1)


Используйте xmlDocDumpMemory, чтобы сохранить файл, как в аналогичном вопрос перед применением таблицы стилей и посмотрите, работает ли это.

Ссылки

person Paul Sweatte    schedule 21.08.2012