Search
  1. PHP4でDOM関数を使う
  2. domxml_open_mem〔XML文字列からDOMオブジェクトを生成〕
  3. domxml_open_file〔XMLファイルからDOMオブジェクトを生成〕
  4. domxml_version〔XMLライブラリのバージョンを取得〕
  5. domxml_new_doc〔空の新規XMLドキュメントを作成〕
  6. DomDocument->dump_file〔内部XMLツリーをファイルにダンプ〕
  7. DomDocument->document_element〔ルート要素のノードを取得〕
  8. DomDocument->document_element〔ルート要素のノードを取得〕

PHP4でDOM関数を使う

unknown

PHP4のDOM関数をWindows環境で使えるようにするには、以下の設定が必要です。 以下はWindows XPの場合の設定例です。

  1. (C:\WINDOWSフォルダ内にある)php.iniの550行目あたりにある「extension=php_domxml.dll」のコメントアウトを外します。

    ;extension=php_domxml.dll
    ↓
    extension=php_domxml.dll
  2. C:\php\dllsフォルダ内にある「iconv.dll」をC:\WINDOWS\system32フォルダ内にコピーします。

domxml_open_mem
XML文字列からDOMオブジェクトを生成

unknown

DomDocument domxml_open_mem ( string $XML文字列 [, int $モード [, array &$エラー配列]] )

文字列として与えられたXMLをパースし、DOMオブジェクトを生成します。

第1引数XML文字列には、XMLファイルの内容を指定します。

オプションの第2引数モードには、DOMXML_LOAD_PARSING (デフォルト)、DOMXML_LOAD_VALIDATINGもしくは DOMXML_LOAD_RECOVERING のいずれかの定数を1つ指定できます (ビット OR により DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES と DOMXML_LOAD_COMPLETE_ATTRSも追加可)。

オプションの第3引数エラー配列にはエラーメッセージが代入されます(参照渡し)。

ranking.inc
<?xml version="1.0" encoding="utf-8"?>
<ranking>
    <item>
        <no>1</no>
        <title><![CDATA[文字列関数]]></title>
        <view>5,748</view>
        <url><![CDATA[./index.php?t=php&p=string]]></url>
    </item>
    <item>
        <no>2</no>
        <title><![CDATA[日付・時間関数]]></title>
        <view>5,109</view>
        <url><![CDATA[./index.php?t=php&p=datetime]]></url>
    </item>
    <item>
        <no>3</no>
        <title><![CDATA[ファイルシステム関数]]></title>
        <view>4,572</view>
        <url><![CDATA[./index.php?t=php&p=file]]></url>
    </item>
    <item>
        <no>4</no>
        <title><![CDATA[マルチバイト文字列関数]]></title>
        <view>4,450</view>
        <url><![CDATA[./index.php?t=php&p=mbstring]]></url>
    </item>
    <item>
        <no>5</no>
        <title><![CDATA[php.ini の設定例]]></title>
        <view>4,170</view>
        <url><![CDATA[./index.php?t=php&p=ini]]></url>
    </item>
</ranking>
<?
# XMLファイルへのパス
$xmlFile="./xml/ranking.inc";
# XMLファイルの内容を文字列として変数に格納
$xmlStr=file_get_contents($xmlFile);
if(!$dom=domxml_open_mem($xmlStr)){
    echo "文書のパース中にエラーが発生いしました";
    exit;
}
$root=$dom->document_element();
echo $root->node_name(); // ranking
?>

domxml_open_file
XMLファイルからDOMオブジェクトを生成

unknown

DomDocument domxml_open_file ( string $ファイル名[, int $モード[, array &$エラー配列]] )

XMLファイルとして与えられたXMLをパースし、DOMオブジェクトを生成します。

第1引数ファイル名には、XMLファイルへのパスを指定します。ファイルへのアクセスは読み取り専用モードです。

オプションの第2引数モードには、DOMXML_LOAD_PARSING (デフォルト)、DOMXML_LOAD_VALIDATINGもしくはDOMXML_LOAD_RECOVERINGのいずれかの定数を1つ指定できます。 ビット OR によりDOMXML_LOAD_DONT_KEEP_BLANKSDOMXML_LOAD_SUBSTITUTE_ENTITIESDOMXML_LOAD_COMPLETE_ATTRSも追加可。

オプションの第3引数エラー配列にはエラーメッセージが代入されます(参照渡し)。

ranking.xml
<?xml version="1.0" encoding="utf-8"?>
<ranking>
    <item>
        <no>1</no>
        <title><![CDATA[文字列関数]]></title>
        <view>5,748</view>
        <url><![CDATA[./index.php?t=php&p=string]]></url>
    </item>
    <item>
        <no>2</no>
        <title><![CDATA[日付・時間関数]]></title>
        <view>5,109</view>
        <url><![CDATA[./index.php?t=php&p=datetime]]></url>
    </item>
    <item>
        <no>3</no>
        <title><![CDATA[ファイルシステム関数]]></title>
        <view>4,572</view>
        <url><![CDATA[./index.php?t=php&p=file]]></url>
    </item>
</ranking>
<?
# XMLファイルへのパス
$xmlFile="http://phpjavascriptroom.com/xml/ranking.xml";
# DOMドキュメントのインスタンス生成
$dom=domxml_open_file($xmlFile);
if(!$dom){
    echo "文書のパース中にエラーが発生しました";
    exit;
}
# ルート要素ノードを返す
$root $dom->first_child();
# ルート要素ノード名を出力
echo $root->node_name();
?>

domxml_version
XMLライブラリのバージョンを取得

unknown

string domxml_version ( void )

現在使用されているXMLライブラリのバージョンを取得し、そのバージョンを文字列として返します。

<?
# 現在使用しているXMLライブラリのバージョン
echo domxml_version(); // 20626
?>

domxml_new_doc
空の新規XMLドキュメントを作成

unknown

DomDocument domxml_new_doc ( string $バージョン番号 )

空の新規DOMドキュメントを生成して返します。

第1引数バージョン番号には、XMLのバージョン番号を文字列として指定します。

<?
# 空の新規XMLドキュメントを生成
$newObj=domxml_new_doc("1.0");
echo nl2br(print_r($newObj,true));
/*
domdocument Object
(
[name] => #document
[url] =>
[version] => 1.0
[standalone] => -1
[type] => 9
[compression] => -1
[charset] => 1
[0] => 7
[1] => 13561600
)
*/
?>

DomDocument->dump_file
内部XMLツリーをファイルにダンプ

unknown

string DomDocument->dump_file ( string $ファイル名[, bool $コンプレッションモード [, bool $フォーマット]] )

DOMからXML文字列を生成し、ファイルにダンプします。

第1引数ファイル名には、ダンプするファイル名を指定します。

オプションの第2引数コンプレッションモードには、圧縮する(TRUE)か否か(FALSE)を指定します。 オプションの第3引数フォーマットには、整形してダンプする(TRUE)か否か(FALSE)を指定します。

<?
header('Content-Type: text/xml');

$doc domxml_new_doc("1.0");
$root $doc->add_root("ranking");

$item $root->new_child("item""");
$item->new_child("no""1");
$item->new_child("title"mb_convert_encoding("文字列関数","UTF-8"));
$item->new_child("view""5748");
$item->new_child("url""./index.php?t=php&amp;p=string");

$item $root->new_child("item""");
$item->new_child("no""2");
$item->new_child("title"mb_convert_encoding("日付・時間関数","UTF-8"));
$item->new_child("view""5109");
$item->new_child("url""./index.php?t=php&amp;p=datetime");

echo $doc->dump_mem();

# 整形してファイルにダンプ
$doc->dump_file("phpdom.xml"falsetrue);
/*
<ranking>
    <item>
        <no>1</no>
        <title><![CDATA[文字列関数]]></title>
        <view>5,748</view>
        <url><![CDATA[./index.php?t=php&p=string]]></url>
    </item>
    <item>
        <no>2</no>
        <title><![CDATA[日付・時間関数]]></title>
        <view>5,109</view>
        <url><![CDATA[./index.php?t=php&p=datetime]]></url>
    </item>
</ranking>
*/
?>

DomDocument->document_element
ルート要素のノードを取得

unknown

domelement DomDocument->document_element ( void )

ルート要素のノードを返します。

<?
# XMLファイルへのパス
$xmlFile="http://phpjavascriptroom.com/xml/ranking.xml";
# DOMドキュメントのインスタンス生成
$dom=domxml_open_file($xmlFile);
if(!$dom){
    echo "文書のパース中にエラーが発生いしました";
    exit;
}
$root $dom->document_element();
echo nl2br(print_r($root,true));
/*
domelement Object
(
[type] => 1
[tagname] => ranking
[0] => 3
[1] => 14657768
)
*/
?> 

DomDocument->document_element
ルート要素のノードを取得

unknown

domelement DomDocument->document_element ( void )

ルート要素のノードを返します。

<?
# XMLファイルへのパス
$xmlFile="http://phpjavascriptroom.com/xml/ranking.xml";
# DOMドキュメントのインスタンス生成
$dom=domxml_open_file($xmlFile);
if(!$dom){
    echo "文書のパース中にエラーが発生いしました";
    exit;
}
$root $dom->document_element();
echo nl2br(print_r($root,true));
/*
domelement Object
(
[type] => 1
[tagname] => ranking
[0] => 3
[1] => 14657768
)
*/
?> 

関連コンテンツ

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

投票する 投票結果を見る

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

pagetop

polarized women