Search
  1. DOMElement::__construct〔新しい DOMElement オブジェクトを作成する〕
  2. DOMElement::getAttribute〔属性の値を返す〕
  3. DOMElement::getAttributeNode〔属性ノードを返す〕
  4. DOMElement::getAttributeNodeNS〔属性ノードを返す〕
  5. DOMElement::getAttributeNS〔属性の値を返す〕
  6. DOMElement::getElementsByTagName〔タグ名から要素を取得する〕
  7. DOMElement::getElementsByTagNameNS〔名前空間 URI とローカル名から要素を取得する〕
  8. DOMElement::hasAttribute〔属性が存在するかどうかを調べる〕
  9. DOMElement::hasAttributeNS〔属性が存在するかどうかを調べる〕
  10. DOMElement::removeAttribute〔属性を削除する〕
  11. DOMElement::removeAttributeNode〔属性を削除する〕
  12. DOMElement::removeAttributeNS〔属性を削除する〕
  13. DOMElement::setAttribute〔新しい属性を追加する〕
  14. DOMElement::setAttributeNode〔新しい属性ノードを要素に追加する〕
  15. DOMElement::setAttributeNodeNS〔新しい属性ノードを要素に追加する〕
  16. DOMElement::setAttributeNS〔新しい属性を追加する〕
  17. DOMElement::setIdAttribute〔ID 型の属性を名前で宣言する〕
  18. DOMElement::setIdAttributeNode〔ID 型の属性をノードで宣言する〕
  19. DOMElement::setIdAttributeNS〔ID 型の属性をローカル名および名前空間 URI で宣言する〕
  20. DOMEntityReference::__construct〔新しいDOMEntityReferenceオブジェクトを作成する〕
  21. DOMImplementation::__construct〔新しい DOMImplementation オブジェクトを作成する〕
  22. DOMImplementation::createDocument〔指定した型とドキュメント要素の DOMDocument オブジェクトを作成する〕
  23. DOMImplementation::createDocumentType〔空の DOMDocumentType オブジェクトを作成する〕
  24. DOMImplementation::hasFeature〔DOM 実装が、指定した機能を実装しているかどうかを調べる〕
  25. DOMNamedNodeMap::getNamedItem〔名前で指定されたノードを取得する〕
  26. DOMNamedNodeMap::getNamedItemNS〔ローカル名および名前空間 URI で指定したノードを取得する〕
  27. DOMNamedNodeMap::item〔インデックスで指定したノードを取得する〕
  28. DOMNode::appendChild〔子要素群の最後に新しい子要素を追加する〕
  29. DOMNode::cloneNode〔ノードを複製する〕
  30. DOMNode::hasAttributes〔ノードが属性を保持しているかどうかを調べる〕
  31. DOMNode::hasChildNodes〔ノードが子を保持しているかどうかを調べる〕
  32. DOMNode::insertBefore〔参照しているノードの前に新しい子を追加する〕
  33. DOMNode::isDefaultNamespace〔指定した namespaceURI がデフォルトの名前空間かどうかを調べる〕
  34. DOMNode::isSameNode〔2 つのノードが等しいかどうかを調べる〕
  35. DOMNode::isSupported〔指定したバージョンで機能がサポートされているかどうかを調べる〕
  36. DOMNode::lookupNamespaceURI〔プレフィックスに基づいて、ノードの名前空間 URI を取得する〕
  37. DOMNode::lookupPrefix〔名前空間 URI に基づいて、ノードの名前空間プレフィックスを取得する〕
  38. DOMNode::normalize〔ノードを正規化する〕
  39. DOMNode::removeChild〔子要素群から子要素を削除する〕
  40. DOMNode::replaceChild〔子を置き換える〕

DOMElement::__construct
新しい DOMElement オブジェクトを作成する

unknown

DOMElement::__construct ( [ string $バージョン[, string $エンコーディング ]] )

新しいDOMDocumenntオブジェクトを作成します。

第1引数バージョンには、XML宣言の一部であるドキュメントのバージョン番号を指定します。

第2引数エンコーディングには、XML宣言の一部であるドキュメントのエンコーディングを指定します。

<?
# 新しい DOMDocument を作成する
$dom = new DOMDocument('1.0''utf-8');
echo $dom->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
*/
?>

DOMElement::getAttribute
属性の値を返す

unknown

DOMAttr DOMElement::getAttribute ( string $属性名 )

DOMAttrクラスの新しいインスタンスを作成して返します。 このノードは例えば、DOMNode->appendChild()などを使用して挿入されない限りドキュメント内には現れません。 エラーが発生した場合はFALSEを返します。 属性名に無効な文字列が含まれている場合は、DOM_INVALID_CHARACTER_ERRが発生します。

<?
$doc = new DOMDocument('1.0''utf-8');

$doc->preserveWhiteSpace false;
$doc->formatOutput true;

$root $doc->createElement('books');

$doc->appendChild($root);

for($i=0;$i<5;$i++){

    $root_child $doc->createElement('book');
    $root->appendChild($root_child);
   
    $root_attr1 $doc->createAttribute('url');
    $root_child->appendChild($root_attr1);
   
    $root_text $doc->createTextNode('This is the root element!');
    $root_attr1->appendChild($root_text);
   
    $root_attr2$doc->createAttribute('artist');
    $root_child->appendChild($root_attr2);
   
    $root_text $doc->createTextNode('This is the root element!');
    $root_attr2->appendChild($root_text);
   
    $root_attr3 $doc->createAttribute('track');
    $root_child->appendChild($root_attr3);
   
    $root_text $doc->createTextNode('This is the root element!');
    $root_attr3->appendChild($root_text);
}
print $doc->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<books>
  <book url="This is the root element!" artist="This is the root element!" track="This is the root element!"/>
  <book url="This is the root element!" artist="This is the root element!" track="This is the root element!"/>
  <book url="This is the root element!" artist="This is the root element!" track="This is the root element!"/>
  <book url="This is the root element!" artist="This is the root element!" track="This is the root element!"/>
  <book url="This is the root element!" artist="This is the root element!" track="This is the root element!"/>
</books>
*/
?> 

DOMElement::getAttributeNode
属性ノードを返す

unknown

DOMAttr DOMElement::getAttributeNode ( string $名前空間URI, string $qualifiedName )

関連付けられた名前空間に、DOMAttrクラスの新しいインスタンスを作成して返します。 このノードは例えば、DOMNode->appendChild()などを使用して挿入されない限りドキュメント内には現れません。

第2引数 qualifiedNameには、属性のタグ名とプレフィックスを「prefix:tagname」形式で指定します。

エラーが発生した場合はFALSEを返します。 qualifiedNameが無効な文字列が含まれている場合は、 DOM_INVALID_CHARACTER_ERRが発生します。 qualifiedNameが不正な形式、あるいはqualifiedNameがプレフィックスを含んでるにもかかわらず、名前空間URINULLである場合に発生します。

DOMElement::getAttributeNodeNS
属性ノードを返す

unknown

DOMAttr DOMElement::getAttributeNodeNS ( string $名前空間URI, string $ローカル名 )

現在のノードの名前空間URIにおけるローカル名という名前の属性ノードを取得して返します。

DOMElement::getAttributeNS
属性の値を返す

unknown

string DOMElement::getAttributeNS ( string $名前空間URI, string $ローカル名 )

現在のノードから名前空間URIにおけるローカル名という名前の属性の値を取得して返します。 ローカル名および名前空間URIに対応する属性が見つからなかった場合は空文字列を返します。

DOMElement::getElementsByTagName
タグ名から要素を取得する

unknown

DOMNodeList DOMElement::getElementsByTagName ( string $タグ名 )

指定したタグ名を持つすべての子孫要素からなるDOMNodeListクラスの新しいインスタンスを返します。 各要素はツリー内の検索時に見つかった順で並べられます。

ツリー内すべての要素を返すには、第2引数ローカル名に「*」を指定します。

DOMElement::getElementsByTagNameNS
名前空間 URI とローカル名から要素を取得する

unknown

DOMNodeList DOMElement::getElementsByTagNameNS ( string $名前空間URI, string $ローカル名 )

指定したローカル名および名前空間URIのタグを持つすべての子孫要素を取得します。 返り値として、マッチしたすべての要素からなるDOMNodeListクラスのインスタンスを返します。 各要素はツリー内の検索時に見つかった順で並べられます。

ツリー内すべての要素を返すには、第2引数ローカル名に「*」を指定します。

DOMElement::hasAttribute
属性が存在するかどうかを調べる

unknown

bool DOMElement::hasAttribute ( string $要素名 )

指定した要素名に属性が存在するかどうかを示します。 存在する場合にTRUE、存在しない場合にFALSEを返します。

DOMElement::hasAttributeNS
属性が存在するかどうかを調べる

unknown

bool DOMElement::hasAttributeNS ( string $名前空間URI, string $ローカル名 )

要素のメンバーとしてローカル名という名前の属性が名前空間URIに存在するかどうかを調べます。 存在する場合にTRUE、存在しない場合にFALSEを返します。

<?
$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><element xmlns="testns" attr="testval" />');
var_dump($dom->documentElement->hasAttributeNS('testns''attr')); // bool(false) 

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><element xmlns:ns1="testns" ns1:attr="testval" />');
var_dump($dom->documentElement->hasAttributeNS('testns''attr')); // bool(true)

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><element xmlns="testns" attr="testval" />');
var_dump($dom->documentElement->hasAttributeNS(NULL'attr')); // bool(true) 

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><element xmlns="testns" attr="testval" />');
var_dump($dom->documentElement->hasAttributeNS(is_null($dom->documentElement->lookupPrefix('testns')) ? NULL 'testns''attr')); // bool(true)
?>

DOMElement::removeAttribute
属性を削除する

unknown

bool DOMElement::removeAttribute ( string $名前 )

名前という名前の属性を要素から削除します。 成功した場合にTRUE、失敗した場合にFALSEを返します。 ノードが読み込み専用の場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

DOMElement::removeAttributeNode
属性を削除する

unknown

bool DOMElement::removeAttributeNode ( DOMAttr $oldnode )

oldnodeに指定した属性ノードを要素から削除します。 成功した場合にTRUE、失敗した場合にFALSEを返します。 ノードが読み込み専用の場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。 oldnodeが要素の属性でない場合に DOM_NOT_FOUND_ERRORが発生します。

DOMElement::removeAttributeNS
属性を削除する

unknown

bool DOMElement::removeAttributeNS ( string $名前空間URI, string $ローカル名 )

名前空間URIにあるローカル名という名前の属性を要素から削除します。 成功した場合にTRUE、失敗した場合にFALSEを返します。 ノードが読み込み専用の場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

<?
$dom DOMDocument::loadXML('<foo:root xmlns:foo="http:bar"/>');
$element $dom->childNodes->item(0);

echo (int) $element->hasAttributeNS('http:bar''foo'); // 0

$element->removeAttributeNS('http:bar''foo');
echo htmlentities($dom->saveXML());
/*
<?xml version="1.0"?> <root/>
*/
?>

DOMElement::setAttribute
新しい属性を追加する

unknown

DOMAttr DOMElement::setAttribute ( string $名前, string $値 )

名前という属性名に、指定したを設定します。 属性が存在しない場合は作成されます。 返り値として新しいDOMAttrを返します。 エラーが発生した場合はFALSEを返します。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

第1引数名前には、属性の名前を指定します。
第2引数には属性の値を指定します。

<?
$doc = new DOMDocument('1.0''utf-8');
$node $doc->createElement("para");
$newnode $doc->appendChild($node);
$newnode->setAttribute("align""left");
print $doc->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<para align="left"/>
*/
?>

DOMElement::setAttributeNode
新しい属性ノードを要素に追加する

unknown

DOMAttr DOMElement::setAttributeNode ( DOMAttr $属性ノード )

新しい属性ノードを要素に追加します。 属性ノードが置換された場合は、返り値として置換前のノードを返します。 そうでない場合は、NULLを返します。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

<?
$dom = new DOMDocument('1.0''utf-8');
$dom->preserveWhiteSpace false;
$dom->formatOutput true;


$ht_ml $dom->appendChild($dom->createElement('html'));

$he_ad $ht_ml->appendChild($dom->createElement('head'));

$tit_le$he_ad->appendChild($dom->createElement('title'));
$tit_le->appendChild($dom->createTextNode('DOMAttr test'));

$me_ta $he_ad->appendChild(new DOMElement('meta'));
$me_ta->setAttributeNode(new DOMAttr('name''Description'));
$me_ta->setAttributeNode(new DOMAttr('content''example'));

$me_ta $he_ad->appendChild(new DOMElement('meta'));
$me_ta->setAttributeNode(new DOMAttr('name''Author'));
$me_ta->setAttributeNode(new DOMAttr('content''karvjorm'));

print $dom->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<html>
  <head>
    <title>DOMAttr test</title>
    <meta name="Description" content="example"/>
    <meta name="Author" content="karvjorm"/>
  </head>
</html>
*/
?>

DOMElement::setAttributeNodeNS
新しい属性ノードを要素に追加する

unknown

DOMAttr DOMElement::setAttributeNodeNS ( DOMAttr $属性ノード )

新しい属性ノードを要素に追加します。
属性ノードが置換された場合は、返り値として置換前のノードを返します。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

DOMElement::setAttributeNS
新しい属性を追加する

unknown

void DOMElement::setAttributeNS ( string $名前空間URI, string $qualifieldName, string $値 )

名前空間URIにあるqualifiedNameという名前の属性を、指定したに設定します。 属性が存在しない場合は、作成されます。 返り値はありません。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。 qualifiedNameが不正な形式だったり、qualifiedNameがprefixを含むにも関わらず名前空間URINULLの場合にDOM_NAMESPACE_ERRが発生します。

第2引数qualifiedNameには、属性の名前を「prefix:tagname」形式で指定します。
第2引数には、属性の値を指定します。

DOMElement::setIdAttribute
ID 型の属性を名前で宣言する

unknown

void DOMElement::setIdAttribute ( string $名前, bool $isID )

ID型となる属性を名前で宣言します。 返り値はありません。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。 名前がこの要素の属性でない場合にDOM_NOT_FOUNDが発生します。

第1引数名前には、属性の名前を指定します。
第2引数isIDには、ローカル名をID型にしたい場合にTRUE、そうでない場合はFALSEを指定します。

DOMElement::setIdAttributeNode
ID 型の属性をノードで宣言する

unknown

void DOMElement::setIdAttributeNode ( DOMAttr $attr, bool $isID )

ID型となる属性を指定します。 返り値はありません。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。 属性がこの要素の属性でない場合にDOM_NOT_FOUNDが発生します。

第1引数属性には、属性ノードを指定します。
第2引数isIDには、ローカル名をID型にしたい場合にTRUE、そうでない場合はFALSEを指定します。

DOMElement::setIdAttributeNS
ID 型の属性をローカル名および名前空間 URI で宣言する

unknown

void DOMElement::setIdAttributeNS ( string $名前空間URI, string $ローカル名, bool $isID )

ID型となる属性をローカル名および名前空間URIで宣言します。 返り値はありません。

ノードが読み込み専用である場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。 ローカル名がこの要素の属性でない場合にDOM_NOT_FOUNDが発生します。

第1引数名前空間URIには、属性の名前空間URIを指定します。
第2引数ローカル名には、属性のローカル名を「prefix:tagname」形式で指定します。
第3引数isIDには、ローカル名をID型にしたい場合にTRUE、そうでない場合はFALSEを指定します。

DOMEntityReference::__construct
新しいDOMEntityReferenceオブジェクトを作成する

unknown

DOMEntityReference construct ( string $エンティティ参照の名前 )

新しいDOMEntityReferenceオブジェクトを作成します。

<?
# 新しい DOMEntityReference を作成する
$dom = new DOMDocument('1.0''utf-8');
$element $dom->appendChild(new DOMElement('root'));
$entity $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<root>&nbsp;</root>
*/
?>

DOMImplementation::__construct
新しい DOMImplementation オブジェクトを作成する

unknown

DOMImplementation construct ( void )

新しいDOMImplementationオブジェクトを作成します。

DOMImplementation::createDocument
指定した型とドキュメント要素の DOMDocument オブジェクトを作成する

unknown

DOMDocument DOMImplementation::createDocument ( [ string $名前空間URI[, string $qualifiedName[, DOMDocumentType $doctype ]]] )

指定したdoctypeとドキュメント要素のDOMDocumentオブジェクトを作成して返します。 名前空間URIqualifiedNamedoctypeNULLの場合は、ドキュメント要素を含まない空のDOMDocumentを返します。

doctypeが既に別のドキュメントで使用されていたり、別の実装で作成されている場合にDOM_WRONG_DOCUMENT_ERRが発生します。 名前空間URIおよびqualifiedNameで指定した名前空間に間違いがある場合にDOM_NAMESPACE_ERRが発生します。

オプションの第1引数名前空間URIには、作成するドキュメント要素の名前空間URIを指定します。

オプションの第2引数qualifiedNameには、作成するドキュメント要素の修飾名を指定します。

オプションの第3引数doctypeには、作成するドキュメントの型、あるいはNULLを指定します。

DOMImplementation::createDocumentType
空の DOMDocumentType オブジェクトを作成する

unknown

DOMDocumentType DOMImplementation::createDocumentType ( [ string $qualifiedName[, string $publicID[, string $systemID ]]] )

空のDOMDocumentTypeオブジェクトを作成します。 エンティティ宣言および記述は使用できません。 エンティティ参照の展開やデフォルト属性の追加は発生しません。

返り値として、ownerDocumentをNULLに設定した新しいDOMDocumentTypeノードを返します。 qualifiedNameで指定した名前空間に間違いがある場合はDOM_NAMESPACE_ERRが発生します。

オプションの第1引数qualifiedNameには、作成されるドキュメント型の修飾名を指定します。
オプションの第2引数publicIDには、外部サブセットの公開IDを指定します。
オプションの第3引数systemIDには、外部サブセットのシステムIDを指定します。

<?
###### DTD を添付してドキュメントを作成する
# DOMImplementation クラスのインスタンスを作成する
$imp = new DOMImplementation;

# DOMDocumentType のインスタンスを作成する
$dtd $imp->createDocumentType('graph''''graph.dtd');

# DOMDocument のインスタンスを作成する
$dom $imp->createDocument(""""$dtd);

# その他のプロパティを設定する
$dom->encoding 'UTF-8';
$dom->standalone false;

# 空の要素を作成する
$element $dom->createElement('graph');

# 要素を追加する
$dom->appendChild($element);

# ドキュメントの内容を出力する
echo $dom->saveXML();
/*
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>
*/
?>

DOMImplementation::hasFeature
DOM 実装が、指定した機能を実装しているかどうかを調べる

unknown

bool DOMImplementation::hasFeature ( string $feature, string $version )

featureに指定した機能をDOMが実装しているかどうかを調べます。
成功した場合にTRUE、失敗した場合にFALSEを返します。

すべての機能の一覧は、DOM仕様の「Conformance」を参照してください。

第1引数featureには、調べる機能を指定します。

第2引数versionには、調べる機能のバージョン番号を指定します。
DOM level 2では、「2.0」または「1.0」のいずれかになります。

<?
######  DOM Implementationを調べる
$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach($features as $key=>$name){
    if(DOMImplementation::hasFeature($key'2.0')){
        echo "$name の機能を保持しています\n";
    }else{
        echo "$name の機能は保持していません\n";
    }
}
?>

DOMNamedNodeMap::getNamedItem
名前で指定されたノードを取得する

unknown

DOMNode DOMNamedNodeMap::getNamedItem ( string $ノード名 )

ノード名に指定したノードを返します。 ノードが見つからなかった場合はNULLを返します。

<?
$xml=<<<EOD
<?xml version="1.0" encoding="UTF-8"?>
<racine version="2.0a">
    <article/>
</racine>
EOD;

$dom = new DOMDocument;
# 上で定義した XML 文字列を読み込む
$dom->loadXML($xml);

echo $dom->documentElement->attributes->getNamedItem("version")->nodeValue;
// 2.0a
?>

DOMNamedNodeMap::getNamedItemNS
ローカル名および名前空間 URI で指定したノードを取得する

unknown

DOMNode DOMNamedNodeMap::getNamedItemNS ( string $名前空間URI, string $ローカル名 )

ローカル名および名前空間URIで指定したノードを返します。 ノードが見つからなかった場合はNULLを返します。

第1引数名前空間URIには、取得するノードの名前空間URIを指定します。
第2引数ローカル名には、取得するノードのローカル名を指定します。

DOMNamedNodeMap::item
インデックスで指定したノードを取得する

unknown

DOMNode DOMNamedNodeMap::item ( int $インデックス )

マップ内のインデックス番目の位置にあるノードを返します。 インデックスが不正な形式(マップ内の要素数以上)の場合はNULLを返します。

第1引数インデックスには、マップ内のインデックス番号を指定します。

DOMNode::appendChild
子要素群の最後に新しい子要素を追加する

unknown

DOMNode DOMNode::appendChild ( DOMNode $新しいノード )

既存の子ノードリストに新しい子ノードを追加、あるいは新しい子ノードリストを作成して返します 子ノードの作成には、DOMDocument::createElementDOMDocument::createTextNodeなどを使用するか、単に別のノードを使用します。

ノードが読み込み専用であったり、挿入するノードの以前の親が読み込み専用であったりした場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

新しいノードで指定した型の子ノードを保持することが許可されていない場合、あるいは追加しようとしているノードが自分自身やその先祖であった場合にDOM_HIERARCHY_REQUEST_ERRが発生します。

新しいノードがこのノードとは別のドキュメントで作成されたものである場合にDOM_WRONG_DOCUMENT_ERRが発生します。

第1引数新しいノードには、追加する子ノードを指定します。

<?
# 新しいドキュメントに子ノードを追加する
$doc = new DOMDocument;

$node $doc->createElement("para");
$newnode $doc->appendChild($node);

echo $doc->saveXML();
/*
<?xml version="1.0"?>
<para/>
*/
?>

DOMNode::cloneNode
ノードを複製する

unknown

DOMNode DOMNode::cloneNode ( [ bool $deep ] )

ノードのコピーします。 返り値として、コピーされたノードを返します。

オプションの第1引数deepTRUEを指定すると、子孫要素もコピーされます。 省略した場合はデフォルトのFALSE(子孫要素はコピーに含めない)が適用されます。

<?
/* ▼book.xml
<?xml version="1.0" encoding="utf-8" ?>
<book type="paperback">
    <title name='MAP'>Red Nails</title>
    <price>$12.99</price>
    <author>
        <name first="Robert" middle="E" last="Howard"/>
        <birthdate>9/21/1977</birthdate>
    </author>
    <author>
        <name first="Arthur" middle="Mc" last="Kayn"/>
    </author>
</book>
*/
###### ノードのコピー
$file 'book.xml';

$doc = new domDocument;

if (file_exists($file)) {
    $doc->load($file);
} else {
    exit('Erreur !.');
}

$xpath = new domXPath($doc);

$query "//author/*";
$xpathQuery $xpath->query($query);

$size $xpathQuery->length;
for ($i=0$i<$size$i++){
    $node $xpathQuery->item($i);
    if ($node->nodeName == 'birthdate' && $node->hasChildNodes() && $node->firstChild->textContent != ''){
        $clonenode $node->cloneNode(true);
        $refnode $node;
    }
}
for ($i=0$i<$size$i++){
    $node $xpathQuery->item($i);
    if (!$node->isSameNode($refnode)){
        $newnode $node->appendChild($clonenode);
    }
}

print $doc->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<book type="paperback">
    <title name="MAP">Red Nails</title>
    <price>$12.99</price>
    <author>
        <name first="Robert" middle="E" last="Howard"/>
        <birthdate>9/21/1977</birthdate>
    </author>
    <author>
        <name first="Arthur" middle="Mc" last="Kayn"><birthdate>9/21/1977</birthdate></name>
    </author>
</book>
*/
?>

DOMNode::hasAttributes
ノードが属性を保持しているかどうかを調べる

unknown

bool DOMNode::hasAttributes ( void )

ノードが属性を保持しているかどうかを調べ、保持している場合にTRUE、そうでない場合にFALSEを返します。 調べるノードは、XML_ELEMENT_NODEである必要があります。

DOMNode::hasChildNodes
ノードが子を保持しているかどうかを調べる

unknown

bool DOMNode::hasChildNodes ( void )

ノードが子を保持しているかどうかを調調べ、保持している場合にTRUE、そうでない場合にFALSEを返します。

<?
$doc = new DOMDocument;
$node $doc->createElement("FirstMain""First Main Node. This have child");
$doc->appendChild($node);
$childnode $doc->createElement("childnode""child node");
$node->appendChild($childnode);
$secondnode $doc->createElement("SecondMain""First Main Node. This don't have child");
$doc->appendChild($secondnode);
$doc->saveXML();
$nodeElmt $doc->getElementsByTagName("FirstMain");

foreach($nodeElmt as $nodeElmt){
    if($nodeElmt->hasChildNodes()){
        echo "This node has childnodes";
    }else{
        echo "This node has no childnodes";
    }
}
// This node has childnodes
?>

DOMNode::insertBefore
参照しているノードの前に新しい子を追加する

unknown

DOMNode DOMNode::insertBefore ( DOMNode $新しいノード[, DOMNode $参照しているノード ] )

参照しているノードの直前に新しいノードを挿入し、挿入されたノードを返します。 追加するノードに対して変更を加えたい場合は、この関数の返り値を使用してください。

挿入されるノードが読み込み専用であったり、挿入されるノードの以前の親が読み込み専用であった場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

新しいノードで指定した型の子ノードを保持することが許可されていない、あるいは追加しようとしているノードが自分自身やその祖先であった場合にDOM_HIERARCHY_REQUEST_ERRが発生します。

新しいノードが、挿入されるノードとは別のドキュメントで作成されたものである場合にDOM_WRONG_DOCUMENT_ERRが発生します。

参照しているノードが挿入されるノードの子ではない場合にDOM_NOT_FOUNDが発生します。

オプションの第2引数参照しているノードを省略すると、新しいノードが子要素として追加されます。

<?
// load XML, create XPath object
$xml = new DomDocument();
$xml->preserveWhitespace false;
$xml->load('contact/xml/contact.xml');
$xpath = new DOMXPath($xml);

// get node eva, which we will append to
$eva $xpath->query('/contacts/person[.="Eva"]')->item(0);

// create node john
$john $xml->createElement('person''John');

// insert john after eva
//   "in eva's parent node (=contacts) insert
//   john before eva's next node"
// this also works if eva would be the last node
$eva->parentNode->insertBefore($john$eva->nextSibling);

// show result
header('Content-Type: text/plain');
print $xml->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<contacts>
  <person>Adam</person>
  <person>Eva</person><person>John</person>
  <person>Thomas</person>
</contacts>
*/
?>

DOMNode::isDefaultNamespace
指定した namespaceURI がデフォルトの名前空間かどうかを調べる

unknown

bool DOMNode::isDefaultNamespace ( string $名前空間URI )

名前空間URIがデフォルトの名前空間である場合にTRUE、それ以外の場合にFALSEを返します。

DOMNode::isSameNode
2 つのノードが等しいかどうかを調べる

unknown

bool DOMNode::isSameNode ( DOMNode $ノード )

2つのノードが等しいかどうかを調べます。 等しい場合にTRUE、そうでない場合にFALSEを返します。 ノードの内容に基づいて比較されるわけではありません。

DOMNode::isSupported
指定したバージョンで機能がサポートされているかどうかを調べる

unknown

bool DOMNode::isSupported ( string $feature, string $version )

versionに指定したバージョンで、featureに指定した機能がサポートされているかどうかを調べます。 サポートされている場合にTRUE、そうでない場合にFALSEを返します。

第1引数featureには、調べる機能を指定します。 調べる機能の一覧は、DOMImplementation::hasFeatureを参照してください。

第2引数versionには、調べる機能のバージョン番号を指定します。

DOMNode::lookupNamespaceURI
プレフィックスに基づいて、ノードの名前空間 URI を取得する

unknown

string DOMNode::lookupNamespaceURI ( string $prefix )

prefixに指定した名前空間のプレフィックスに基づいて、ノードの名前空間URIを返します。

<?
# デフォルトの名前空間URIを取得
$xml_file="book.xml";
$doc = new DOMDocument();
$doc->load($xml_file);
$uri $doc->documentElement->lookupnamespaceURI(NULL);
?>

DOMNode::lookupPrefix
名前空間 URI に基づいて、ノードの名前空間プレフィックスを取得する

unknown

string DOMNode::lookupPrefix ( string $名前空間URI )

名前空間URIに基づく、ノードの名前空間プレフィックスを返します。

DOMNode::normalize
ノードを正規化する

unknown

void DOMNode::normalize ( void )

ノードを正規化します。 返り値はありません。

DOMNode::removeChild
子要素群から子要素を削除する

unknown

DOMNode DOMNode::removeChild ( DOMNode $子要素 )

子要素群から子要素を削除します。 成功した場合は、削除し要素を返します。

ノードが読み込み専用の場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

子要素がこのノードの子要素でない場合にDOM_NOT_FOUNDが発生します。

第1引数子要素には、削除する子要素を指定します。

<?
/* ▼book.xml
<?xml version="1.0" encoding="utf-8"?>
<books title="PHP関連のおすすめ書籍">
    <book date="20081031" price="1995">まるごとPHP! Vol.2</book>
    <book date="20080918" price="2940">PHP×携帯サイト デベロッパーズバイブル</book>
    <book date="20080618" price="2604" >CakePHP ポケットリファレンス</book>
    <book date="20080526" price="3570">初めてのPHP &amp; MySQL 第2版</book>
    <book date="20080125" price="2520">PHPライブラリコレクション</book>
</books>
*/
$doc = new DOMDocument;
$doc->load('/content/demo/book.xml');

$books $doc->documentElement;

// book を取得し、それを books から削除します
$book $books->getElementsByTagName('book')->item(0);
$oldbook $books->removeChild($book);

echo $doc->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<books title="PHP関連のおすすめ書籍">
    <book date="20080918" price="2940">PHP×携帯サイト デベロッパーズバイブル</book>
    <book date="20080618" price="2604">CakePHP ポケットリファレンス</book>
    <book date="20080526" price="3570">初めてのPHP &amp; MySQL 第2版</book>
    <book date="20080125" price="2520">PHPライブラリコレクション</book>
</books>
*/
?>

DOMNode::replaceChild
子を置き換える

unknown

DOMNode DOMNode::replaceChild ( DOMNode $新しいノード, $古いノード )

古いノードにしていした子要素を新しいノードに置換します。 新しいノードが既に子要素にあった場合は追加されません。 置換に成功すると、古いノードを返します。 エラーが発生した場合は、FALSEを返します。

このノードが読み込み専用であったり、挿入されるノードの以前の親が読み込み専用であった場合にDOM_NO_MODIFICATION_ALLOWED_ERRが発生します。

新しいノードで指定した型の子ノードを保持することが許可されていない場合、あるいは追加しようとしているノードが自分自身やその祖先であった場合にDOM_HIERARCHY_REQUEST_ERRが発生します。

新しいノードがこのノードとは別のドキュメントで作成されたものである場合にDOM_WRONG_DOCUMENT_ERRが発生します。

古いノードがこのノードの子でない場合にDOM_NOT_FOUNDが発生します。

第1引数新しいノードは、対象ドキュメントのメンバ、つまりDOMDocument->createXXX()メソッドのひとつで追加されたかDOMDocument::importNodeでドキュメントにインポートされたものである必要があります。

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women