文字

DOMNode::C14N

(PHP 5 >= 5.2.0)

DOMNode::C14NCanonicalize nodes to a string

说明

public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )

Canonicalize nodes to a string

参数

exclusive

Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.

with_comments

Retain comments in output.

xpath

An array of xpaths to filter the nodes by.

ns_prefixes

An array of namespace prefixes to filter the nodes by.

返回值

Returns canonicalized nodes as a string 或者在失败时返回 FALSE

参见

  • DOMNode::C14NFile() - Canonicalize nodes to a file

用户评论:

[#1] jorda at edpsciences dot org [2015-03-13 09:11:30]

C14N() returns an empty string if the node is not included in the document tree:
<?php
$d 
= new DOMDocument('1.0');
$d->loadXML('<foo></foo>');
$n $d->createElement('bar');
var_dump($n->C14N());
$d->documentElement->appendChild($n);
var_dump($n->C14N());
?>

output:
string(0) ""
string(11) "<bar></bar>"

[#2] Rijk [2013-03-27 09:26:18]

When working with (malformed) HTML, you're probably better off using DOMDocument's saveHTML() method instead. C14N() will attempt to make your HTML valid XML, for example by converting <br> to <br></br>.

So instead of:
$html = $Node->C14N();

Use:
$html = $Node->ownerDocument->saveHTML( $Node );

上一篇: 下一篇: