©
本文档使用
php.cn手册 发布
(PHP 5 >= 5.2.0)
DOMNode::C14N — Canonicalize nodes to a string
$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
[#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 );