php[world] 2015 Call for Speakers

DOMNode::C14N

(PHP 5 >= 5.2.0)

DOMNode::C14NCanonicalize nodes to a string

Description

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

Canonicalize nodes to a string

Parameters

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.

Return Values

Returns canonicalized nodes as a string or FALSE on failure

See Also

add a note add a note

User Contributed Notes 2 notes

up
5
Rijk
2 years ago
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 );
up
1
jorda at edpsciences dot org
2 months ago
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>"
To Top