我有一个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