DOMNode::C14N()

将节点及其子节点序列化为标准的字符串表示形式,符合Canonical XML(C14N)规范

首字母:D

函数名称:DOMNode::C14N()

适用版本:PHP 5 >= 5.2.0, PHP 7, PHP 8

函数描述:DOMNode::C14N() 方法将节点及其子节点序列化为标准的字符串表示形式,符合Canonical XML(C14N)规范。

用法:

public DOMNode::C14N( bool $exclusive = FALSE, bool $with_comments = FALSE, array $xpath, array $ns_prefixes = NULL) : string|false

参数:

  • $exclusive(可选):设置为 TRUE 表示只包括当前节点及其后代节点,设置为 FALSE 表示包括整个文档。默认为 FALSE。
  • $with_comments(可选):设置为 TRUE 表示包括注释节点,设置为 FALSE 表示不包括注释节点。默认为 FALSE。
  • $xpath:(可选)一个 XPath 表达式数组,用于选择要序列化的节点。只有满足表达式的节点才会被序列化。默认为 NULL,即序列化所有节点。
  • $ns_prefixes:(可选)一个关联数组,用于指定某些命名空间的前缀。键是命名空间 URI,值是前缀。默认为 NULL。

返回值:

  • 若序列化成功,则返回序列化后的标准字符串。
  • 若发生错误,则返回 FALSE。

示例:

// 创建一个 XML 文档
$xml = '

 Value 1
 Value 2
';
$dom = new DOMDocument();
$dom->loadXML($xml);
$root = $dom->documentElement;
// 调用 C14N 方法进行序列化,并输出结果
$c14n = $root->C14N();
echo $c14n;

输出结果:


 Value 1
 Value 2

注意事项:

  • 示例中的 XML 是简化的,实际应用中可以包含更多的节点和属性。
  • $xpath 参数可以使用 XPath 表达式来选择特定的节点进行序列化。例如,$xpath = ['//element1'] 将仅序列化名为 "element1" 的节点及其后代节点。
  • $ns_prefixes 参数用于指定某些命名空间的前缀,以在序列化时指定前缀而不是完整的命名空间 URI。例如,$ns_prefixes = ['http://example.com/ns' => 'ex'] 将序列化时使用 "ex" 前缀代替 "http://example.com/ns" 命名空间 URI。

更多信息:

同首字母函数