DOMDocument::createEntityReference()
(PHP 5, PHP 7)
Create new entity reference node
说明
public DOMDocument::createEntityReference(string $name): DOMEntityReference
This function creates a new instance of class DOMEntityReference.此节点出现在文档中,除非是用诸如DOMNode->appendChild()等函数来将其插入。
参数
- $name
The content of the entity reference, e.g. the entity reference minus the leading&and the trailing;characters.
返回值
The new DOMEntityReference or FALSE
if an error occurred.
错误/异常
DOM_INVALID_CHARACTER_ERR
Raised if$namecontains an invalid character.
参见
- DOMNode::appendChild() Adds new child at the end of the children
- DOMDocument::createAttribute() Create new attribute
- DOMDocument::createAttributeNS() Create new attribute node with an associated namespace
- DOMDocument::createCDATASection() Create new cdata node
- DOMDocument::createComment() Create new comment node
- DOMDocument::createDocumentFragment() Create new document fragment
- DOMDocument::createElement() Create new element node
- DOMDocument::createElementNS() Create new element node with an associated namespace
- DOMDocument::createProcessingInstruction() Creates new PI node
- DOMDocument::createTextNode() Create new text node
It appears that this does not work with numbered entities, only named entities. $nbspace = $dom->createEntityReference('nbsp'); works $nbspace = $dom->createEntityReference('#160'); does not. This makes this function rather useless when generating an XSL unless you modify the XSL doctype to include the named entity for the character you want.
<?php /*Entity is a group of words which print a special symbol. Like if we want to show copy right symbol in html page then we use © code and browser convert this to actual copyright symbol. There have lots of entity, you can find them all form http://dev.w3.org/html5/html-author/charref if you want to use < or > or both <> into a node value than xml will give and warning or make this value as a node. So tell the xml parser that < or > is not tag symbol it is a entity.To do that you have to right <(<) and >(>) instead of < and > symbol. Entity references always begin with an ampersand (&) and end with a semicolon (;). DO not need to use & and ; symbol begin and end of entity.Remove it when you want to use it to DOMDocument::createEntityReference Then append to to a tag where you want to show this symbol.Like below */ $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(); output is This is copyright ©