間違った要素名を使用しています。メソッドは、あなたの場合getElementsByTagNameのローカル名を期待していcreatorます。
サンプル XML をロードすると、
<?xml version="1.0" encoding="UTF-8"?>
<item>
<dc:creator><![CDATA[hello world]]></dc:creator>
</item>
DOMDocument に。次の警告が表示されます。
警告: DOMDocument::loadXML(): 作成者の名前空間プレフィックス dc がエンティティで定義されていません
名前空間プレフィックスが定義されていないため、DOMDocument はそれを削除します。これにより、次の XML が生成されます。
<?xml version="1.0" encoding="UTF-8"?>
<item xmlns:dc="ns:1">
<creator><![CDATA[hello world 2]]></creator>
</item>
ご覧のとおり、ローカル名 creatorにxmlns-prefix dc ( <dc:creator>) が付いた要素はもうありません。
しかし、例に間違った XML を貼り付けたようで、名前空間プレフィックスが実際の XML で定義されている可能性が高いため、名前空間プレフィックス (コロンの前の部分) を持つタグにアクセスする方法を尋ねているだけです:。これはすでにここで概説されています:
タグが独自の名前空間内にある要素が必要な場合は、DOMDocumentにどの名前空間を意味するかを伝える必要があります。
$dcUri = $doc->lookupNamespaceUri('dc');
$authors = $item->getElementsByTagNameNS($dcUri, 'creator');
$author = $authors->item(0)->nodeValue;