添加 xml-stylesheet 标签 simpleXML php

Add xml-stylesheet tag simpleXML php

伙计们,这是我的简单代码:

$xml = new SimpleXMLElement('<p:FatturazioneElettronica xmlns:p="http://microsoft.com/wsdl/types/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dummy.com"/>');

$xml->addAttribute("versione","FPR12");

$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader',null,'http://dummy.com');

xml 结果是:

<p:FatturazioneElettronica xmlns:p="http://microsoft.com/wsdl/types/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dummy.com" versione="FPR12">

 <FatturaElettronicaHeader>
  <DatiTrasmissione>
   ....

如何在我的xml"xml-stylesheet"顶部添加?

<?xml-stylesheet type="text/xsl" href="fatturapa_v1.2.xsl" ?> 

SimpleXML 除了简单的事情外,不太擅长做任何事情(认为这个名字很贴切)。我能想到的唯一方法是使用 DOMDocument,它提供了更丰富的 API 并且您应该能够按如下方式进行...

$xmlD = new DOMDocument( "1.0", "ISO-8859-15" );
$xmlD->appendChild($xmlD->createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="fatturapa_v1.2.xsl"'));
$xmlD->appendChild($xmlD->importNode(dom_import_simplexml($xml)));

echo $xmlD->saveXML();

这将创建一个新的 DOMDocument 实例,然后添加一些内容。首先它使用createProcessingInstruction() 来添加对样式sheet 的处理指令。然后它导入 SimpleXML 文档的现有内容(在 $xml 中)并将其附加到末尾。 echo 应该给你一个类似...

的文档
<?xml version="1.0" encoding="ISO-8859-15"?>
<?xml-stylesheet type="text/xsl" href="fatturapa_v1.2.xsl"?>
<p:FatturazioneElettronica xmlns:p="http://microsoft.com/wsdl/types/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dummy.com" versione="FPR12"/>