我有一个动态创建的
XML.但是,我想在其中添加对XSLT文件的引用,以便能够在Mozilla中将XML文件呈现为HTML.
我希望我的最终XML能够像这样开始:
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="xslt_stylesheet_file.xsl"?> <root_node> </root_node>
我无法安装XML :: LibXSLT,因此这不是一个解决方案.
另一种解决方案是将XML写入文件,将其作为常规文件打开并向其添加XSLT引用 – 但这对我来说似乎不对.
这有优雅的解决方案吗?
编辑:
use strict; use warnings; use XML::LibXML; my $final_xml = XML::LibXML::Document->new('1.0','utf-8'); my $root_node = $final_xml->createElement('root'); $final_xml->setDocumentElement( $root_node ); open (MYFILE,'>final.xml' ); print MYFILE $final_xml->toString(); close (MYFILE);
输出是:
<?xml version="1.0" encoding="utf-8"?> <root/>
解决方法
use strict; use warnings; use XML::LibXML; my $final_xml = XML::LibXML::Document->new('1.0','utf-8'); my $pi = $final_xml->createProcessingInstruction("xml-stylesheet"); $pi->setData(type=>'text/xsl',href=>'xslt_stylesheet_file.xsl'); $final_xml->appendChild($pi); my $root_node = $final_xml->createElement('root'); $final_xml->setDocumentElement($root_node); $final_xml->toFile("final.xml")
=>
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="xslt_stylesheet_file.xsl" type="text/xsl"?> <root/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。