DOMDocument::createEntityReference

(PHP 5, PHP 7, PHP 8)

DOMDocument::createEntityReference创建新的实体引用节点

描述

public DOMDocument::createEntityReference(string $name): DOMEntityReference|false

此函数创建类 DOMEntityReference 的新实例。除非使用(例如)DOMNode::appendChild() 插入,否则此节点不会出现在文档中。

参数

name

实体引用的内容,例如,实体引用减去开头的 & 和结尾的 ; 字符。

返回值

新的 DOMEntityReference 或如果发生错误则为 false

错误/异常

DOM_INVALID_CHARACTER_ERR

如果 name 包含无效字符,则引发。

参见

添加注释

用户贡献的注释 2 个注释

alicewonder at shastaherps dot org
8 年前
看起来这不能用于编号实体,只能用于命名实体。

$nbspace = $dom->createEntityReference('nbsp');

有效

$nbspace = $dom->createEntityReference('#160');

无效。这使得此函数在生成 XSL 时相当无用,除非您修改 XSL 文档类型以包含您想要字符的命名实体。
Tuhin Bepari
10 年前
<?php
/*实体是一组单词,用于打印特殊符号。
例如,如果我们想在 html 页面中显示版权符号,则使用 &copy; 代码,浏览器将其转换为实际的版权符号。
有许多实体,您可以在 http://dev.w3.org/html5/html-author/charref 上找到所有实体
如果要将 < 或 > 或 <> 同时用在节点值中,则 xml 会给出警告或将其值设为节点。
因此,告诉 xml 解析器 < 或 > 不是标签符号,而是实体。为此,您必须编写 &lt(<) 和 &gt;(>),而不是 < 和 > 符号。

实体引用总是以一个与号 (&) 开始,以分号 (;) 结束。
使用 DOMDocument::createEntityReference 时,无需在实体的开头和结尾使用 & 和 ; 符号。将其删除。
然后将其附加到您要显示此符号的标签。如下所示
*/
$dom=new DOMDocument("1.0","UTF-8");
$example=$dom->createElement("example","This is copyright ");
$entity=$dom->createEntityReference("copy");
$example->appendChild($entity);
$dom->appendChild($example);
echo
$dom->saveXML();

输出为
This is copyright ©
To Top