加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

仅使用XML:LibXML在Perl中添加对XSLT的引用

发布时间:2020-12-16 23:05:54 所属栏目:百科 来源:网络整理
导读:我有一个动态创建的 XML.但是,我想在其中添加对XSLT文件的引用,以便能够在Mozilla中将XML文件呈现为HTML. 我希望我的最终XML能够像这样开始: ?xml version="1.0" encoding="utf-8"??xml-stylesheet type="text/xsl" href="xslt_stylesheet_file.xsl"?root_n
我有一个动态创建的 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/>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读