XSLT: xsltApplyStylesheet returns null



我有一个xml和xsl文件。xsl 的输出只是一个文本,即如果某些条件失败,结果只是对失败的描述。如果所有条件都通过,则结果为 null。如果我在 xsltproc 中运行它,它可以正常工作。

但是,如果我使用函数 xsltApplyStylesheet 使用 libxslt 运行它,我看到的结果为空。xsltApplyStylesheet 的输入 xml 是在代码中动态创建的。xsl 文件使用 xsltParseStylesheetFile 读取。 (我使用了xmlDocDumpFormatMemory的xml和xsltParseStylesheetFile->doc的输出,似乎都很好(。我在ApplyStylesheet之后尝试了xsltSaveResultToString,但它也不起作用。

这里可能有什么问题?

代码片段:

  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并感谢您的帮助!

在应用样式表之前,使用 xmlDocDumpMemory 将文件保存为类似问题,看看是否有效。

引用

  • XMLSoft FAQ

  • 如何使用libXML2将XML保存到文件(文件名.xml(?

  • 安卓 - ArchWiki

相关内容

  • 没有找到相关文章

最新更新