PHP DomDocument-自闭标签和特殊字符

时间:2019-02-20 19:01:59

标签: php xml domdocument

我正在使用XML的{​​{1}}生成一个PHP文件,但在某个时候,我被一个包含html标题的自闭标签弄糊涂了。

这是所需的输出:

DomDocument

这是我(错误地)现在正在做的事情:

<http-headers>
   <header name="Access-Control-Allow-Origin" value="*" />
</http-headers>

哪个给我:

$httpHeaders = $xml->createElement("http-headers");
$icecast->appendChild($httpHeaders);

$headerName = $xml->createTextNode('<header name="Access-Control-Allow-Origin" value="*" />');
$httpHeaders->appendChild($headerName);

我看过namespacesattribute values,但都非常混乱,而且我也找不到能够添加自闭标签的解决方案。

我还需要输出<http-headers>&lt;header name="Access-Control-Allow-Origin" value="*" /&gt;</http-headers> <字符,而不是将它们转换为>&lt;

有人可以指出我正确的方向吗?

编辑

取得一些进展,现在以正确的方式添加元素:

&gt;

但是它输出的是html代码而不是字符:

$httpHeaders = $xml->createElement("http-headers");
$icecast->appendChild($httpHeaders);
$httpHeadersHeader = $xml->createElement("header");
$httpHeaders->appendChild($httpHeadersHeader);
$httpHeadersHeader->setAttribute("name", '"Access-Control-Allow-Origin" value="*"'); 

我在输出之前添加了UTF-8编码,但这没有帮助:

<http-headers>
    <header name="&quot;Access-Control-Allow-Origin&quot; value=&quot;*&quot;"/>
</http-headers>

我如何使其输出实际符号而不是代码?

1 个答案:

答案 0 :(得分:0)

您将两个属性都添加到一个属性值中,您需要将其分为两个调用,每个调用一个...

$httpHeadersHeader->setAttribute("name", "Access-Control-Allow-Origin"); 
$httpHeadersHeader->setAttribute("value", "*");