FluidXml生成XML文档出错排查及XSL样式指定方法咨询
使用FluidXml生成XML文档的问题与解决方法
问题1:仅输出文本而非XML的原因及修正
你当前只输出分割线和“S. Hawking”,大概率是因为没有正确调用FluidXml的XML生成方法,或是仅直接输出了文本内容,未构建完整的XML节点结构。
修正示例代码:
use FluidXml\FluidXml; function create_xml() { // 初始化FluidXml实例,指定根节点 $xml = new FluidXml('root'); // 添加子节点(以作者节点为例) $xml->add('author', 'S. Hawking'); // 调用xml()方法生成完整XML字符串并返回 return $xml->xml(); } // 调用函数输出结果 echo create_xml();
这段代码会生成包含根节点和作者节点的结构化XML,而不是直接输出文本。如果原有代码只是直接echo文本、未调用xml()方法,就会出现你遇到的问题。
问题2:正确指定XSL样式表
在FluidXml中,需通过**添加处理指令(Processing Instruction)**来指定XSL样式表,使用addProcessingInstruction方法即可:
use FluidXml\FluidXml; function create_xml_with_xsl() { $xml = new FluidXml('root'); // 添加XSL样式表处理指令 $xml->addProcessingInstruction('xml-stylesheet', [ 'type' => 'text/xsl', 'href' => 'http://imnotsure.com/style.xsl' ]); // 添加其他业务节点 $xml->add('author', 'S. Hawking'); return $xml->xml(); } echo create_xml_with_xsl();
生成的XML开头会自动包含样式表声明:
<?xml-stylesheet type="text/xsl" href="http://imnotsure.com/style.xsl"?>
以此完成XSL样式表的正确指定。
内容的提问来源于stack exchange,提问作者Marcin Wierzycki
相关产品推荐
相关产品推荐

