[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 メーリングリストの案内