我需要渲染通过找到的节点集XML::XPath
my $source = XML::LibXML->load_xml(location => 'xml/animals.xml');
my $nodeset = $source->find('//area[@id="01"]');
使用 XSLT 模板XML::LibXSLT
:
my $xslt = XML::LibXSLT->new();
my $style_doc = XML::LibXML->load_xml(location=>'xml/animal_template.xsl', no_cdata=>1);
my $stylesheet = $xslt->parse_stylesheet($style_doc);
但我不能简单地将节点集提供给$stylesheet->transform()
:
my $results = $stylesheet->transform($nodeset);
因为 transform 需要一个XML::LibXML::Document
对象,而不是 XML::XPath::NodeSet
.
我应该怎么办?有没有办法XML::LibXML::Document
从 a创建一个XML::XPath::NodeSet
?
或者也许给 XSLT 模板一个变量,这样我就不必使用 XPath 查找节点?