使用php更改xml文件的xslt文件

时间:2019-03-06 16:11:42

标签: php xml xslt

大家好,我想使用PHP动态更改XML文件的样式表 像这样的事情: the XML file register.xml
当我尝试显示它时,它显示了我: the out put

好的,这就是我想要做的:
1)如前所述,我有一个名为“ regiter.xml”的XML文件。
2)假设我有3个扩展名为.xsl的文件(style1.xsl,style2.xsl,style3.xsl)
3)而且我有一个表单标签,可以让用户选择他要如何显示XML文件,他可以选择style1或2或3。
4)我想根据用户选择动态地更改文件“ register.xml”的标签<?xml-stylesheet?>中的属性href =“ file.xsl”的值

我的问题是:
有可能这样做吗?
如果不能,可以建议我另一种方法吗?
谢谢...

1 个答案:

答案 0 :(得分:0)

考虑让PHP运行XSLT脚本,而不修改浏览器的处理指令以呈现样式表。

// LOAD XML SOURCE
$doc = new DOMDocument();
$doc->load('Input.xml');

// CONDITIONALLY SELECT XSLT SCRIPT
if (if(isset($_POST['button_1']))) {
    $selected_xsl = "/path/to/style1.xsl";

} elseif (if(isset($_POST['button_2']))) {
    $selected_xsl = "/path/to/style2.xsl";

} elseif (if(isset($_POST['button_3']))) {
    $selected_xsl = "/path/to/style3.xsl";

}   
$xsl = new DOMDocument();
$xsl->load($selected_xsl);

// INITIALIZE AND RUN TRANSFORMER
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); 
$newXML = $proc->transformToXML($doc);

// OUTPUT NEW XML TO SCREEN
header("Content-type: text/xml");
echo $newXML;