1

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

但是,如果我使用函数 xsltApplyStylesheet 使用 libxslt 运行它,我会看到空结果。xsltApplyStylesheet 的输入 xml 是在代码中动态创建的。使用 xsltParseStylesheetFile 读取 xsl 文件。(我使用了xml和xsltParseStylesheetFile->doc的输出的xmlDocDumpFormatMemory,看起来都很好)。我在 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 并感谢您的帮助!

4

1 回答 1

0

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

参考

于 2012-08-21T02:43:06.807 回答