PHP Conference Japan 2024

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 条注释

3
alicewonder at shastaherps dot org
9 年前
此方法似乎不适用于编号实体,仅适用于命名实体。

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

有效

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

无效。除非您修改 XSL 文档类型以包含所需字符的命名实体,否则此函数在生成 XSL 时几乎无用。
0
Tuhin Bepari
11 年前
<?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