大家好,我想使用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”的值。
我的问题是:
有可能这样做吗?
如果不能,可以建议我另一种方法吗?
谢谢...
答案 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;