如何使用SimpleXmlElement在php中添加xslt样式表到现有的xml文档?

时间:2017-08-10 14:12:26

标签: php xml xslt rss

我在一个名为text.xml

的文件中有这个xml文档

xml文档目前看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
......
<rss version="2.0"...>

在xml版本声明之后,我想添加以下行:

<?xml-stylesheet type="text/xml" href="style.xslt"?>

更详细地说,这就是我想要做的事情:

  1. 我首先要将文件的字符串内容转换为xml文档。

    $mystr = file_get_contents(path to my text.xml file);
    $myxml = new SimpleXmlElement($mystr);
    
  2. 然后,我想在XML文档中添加一个属性来链接XSLT样式表。

    $myxml->addAttribute(_____);
    
  3. 使用SimpleXmlElement addAttribute方法,但addAttribute方法允许使用名称,值和命名空间 - 我如何使用命名空间?由于我有三个参数,因此href最有意义的是在命名空间参数点。

    因此,我尝试使用&#39; xml-stylesheet&#39;&#39; text / xml&#39;,&#39; style.xslt&#39;填空。哪个不起作用,因为我收到的错误是&#34;属性需要名称空间的前缀&#34;。我如何让它工作?

    链接到php docs:http://php.net/manual/en/simplexmlelement.addattribute.php

    编辑:这与其他问题不同,因为我试图将xslt样式表链接到rss文档。使用&#34;重复的问题&#39;&#34;解决方案导致xslt样式表在rss版本声明之后链接,这不够好。

    <?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0"...>
    <?xml-stylesheet type="text/xml" href="test.xslt"?>
    ....
    

    相反,我想:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xml" href="test.xslt"?>
    <rss version="2.0"...>
    ....
    

0 个答案:

没有答案