DOMDocument
在线手册:中文  英文

DOMDocument::createAttribute

(PHP 5)

DOMDocument::createAttributeCreate new attribute

说明

public DOMAttr DOMDocument::createAttribute ( string $name )

This function creates a new instance of class DOMAttr. 此节点出现在文档中,除非是用诸如 DOMNode->appendChild() 等函数来将其插入。

参数

name

The name of the attribute.

返回值

The new DOMAttr or FALSE if an error occurred.

错误/异常

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

参见


DOMDocument
在线手册:中文  英文

用户评论:

Skateside (2013-04-05 16:16:57)

This may be obvious to most people, but it gave me a few minutes of head-scratching before I figured it out, but ampersands need to be properly escaped as HTML entities.

<?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);

?>

Will output:
<?xml version="1.0" encoding="UTF-8"?>
<field name="foo">incorrect attribute</field>
<field name="foo&bar">correct attribute</field>

As near as I can figure out, no exception is thrown for an invalid attribute. This will affect DOMDocuments created as HTML as well as XML.

Beerkeeper (2011-11-09 07:19:48)

Just in case it isn't clear (like I had), an example:

<?php

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

// Value for the created attribute
$domAttribute->value 'attributevalue';

// Don't forget to append it to the element
$domElement->appendChild($domAttribute);

// Append it to the document itself
$domDocument->appendChild($domElement);

?>

Will output:
<?xml version="1.0" encoding="UTF-8"?>
<field name="attributevalue">some random data</field>

易百教程