DOMDocument::createAttribute

(PHP 5, PHP 7, PHP 8)

DOMDocument::createAttribute创建新的属性

描述

public DOMDocument::createAttribute(string $localName): DOMAttr|false

此函数创建一个新的 DOMAttr 类实例。除非使用(例如)DOMNode::appendChild() 插入,否则此节点不会显示在文档中。

参数

localName

属性的名称。

返回值

新的 DOMAttr 或如果发生错误则为 false

错误/异常

DOM_INVALID_CHARACTER_ERR

如果 localName 包含无效字符,则引发。

参见

添加注释

用户贡献的注释 2 个注释

88
Beerkeeper
12 年前
以防万一不清楚(就像我一样),这里有一个例子

<?php

$domDocument
= new DOMDocument('1.0', "UTF-8");
$domElement = $domDocument->createElement('field','some random data');
$domAttribute = $domDocument->createAttribute('name');

// 创建的属性的值
$domAttribute->value = 'attributevalue';

// 不要忘记将其附加到元素
$domElement->appendChild($domAttribute);

// 将其附加到文档本身
$domDocument->appendChild($domElement);

?>

将输出
<?xml version="1.0" encoding="UTF-8"?>
<field name="attributevalue">some random data</field>
-9
Skateside
11 年前
这对于大多数人来说可能是显而易见的,但在我弄清楚之前,它让我挠头思考了几分钟,但与号需要正确转义为 HTML 实体。

<?php
$doc
= new DOMDocument('1.0', "UTF-8");

$invalid_elem = $doc->createElement('field', 'incorrect attribute');
$invalid_attr = $doc->createAttribute('name');
$invalid_attr->value = 'foo&bar';
$invalid_elem->appendChild($invalid_attr);
$doc->appendChild($invalid_elem);

$valid_elem = $doc->createElement('field', 'correct attribute');
$valid_attr = $doc->createAttribute('name');
$valid_attr->value = 'foo&amp;bar';
$valid_elem->appendChild($valid_attr);
$doc->appendChild($valid_elem);

?>

将输出
<?xml version="1.0" encoding="UTF-8"?>
<field name="foo">incorrect attribute</field>
<field name="foo&bar">correct attribute</field>

据我所知,对于无效属性,不会引发异常。这将影响作为 HTML 和 XML 创建的 DOMDocuments。
To Top