[PHP-users 22861]自動XML作成について
Takamasa Yano
nqe17511 @ nifty.com
2004年 7月 29日 (木) 13:24:02 JST
初めまして、矢野です。
現在、XML生成ツールのようなスクリプトを作っているのですが、
躓いてしまいましたので、投稿させていただきます。
ルートノードをroot。
ルートノードの子ノードをbodyとしています。
テストとしてブラウザしてみると、
<?xml version="1.0" encoding="utf-8"?>
<root>
<body>
<tagname1>value</tagname1>
<tagname2>value</tagname2>
</body>
</root>
と、思い通りの結果となりました。
で、やりたいこととしては、
<?xml version="1.0" encoding="utf-8"?>
<root>
<body>
<tagname1>value</tagname1>
<tagname2>value</tagname2>
</body>
<body>
<tagname3>value</tagname3>
<tagname4>value</tagname4>
</body>
</root>
という、結果に導かせたいのです。
試行錯誤してはみるものの期待通りの結果にならない状況です。
スクリプト内容は、
// ここでiniファイルを読み込む。
$ini =& parse_ini_file("xxx.ini", true);
if(isset($ini['extension_class'])) {
chdir("..". $ini['extension']['extension_dir']);
foreach($ini['extension_class'] as $key => $va) {
require_once $ini['extension_class'][$key];
}
}
// ルートノードの属性
$rid = array(0 => "rid", 1 => "values11");
// その子ノードの属性
$cid = array(0 => "cid", 1 => "values2d");
$xml = new XMLParser($rid, $cid, "utf-8");
// ここでルートノード名(root)を決定
$xml->setRootNode($ini['xml']['rootnode']);
// ここでルートノードの子ノード名(body)を決定
$xml->setChildNode($ini['xml']['childnode']);
// このメソッドで子ノード(body)の子ノードのタグ名と値を追加。
$xml->appendchild('private', 'a4');
$xml->appendchild('protected', 'a4');
$xml->appendchild('public', 'a4');
// XML文書のヘッダー
$xml->startDocument();
// XMLのルートノードの作成
$xml->startElement();
// 子ノードを表示
$xml->character();
// ルートノードの終了
$xml->endElement();
// XML文書の終了
$xml->endDocument();
もし、このクラスを見たいと感じたらスクリプトを
載せようかと思います。
使用環境は
Windows XP
Apache/2.0.50 (Win32) PHP/4.3.8
です。
以上です。
takahost <nqe17511 @ nifty.com>
PHP-users メーリングリストの案内