[PHP-users 32019] Re: php4で、あるノード以下のツリーを取得する方法
s-ishii
bbswx419 @ ybb.ne.jp
2007年 4月 22日 (日) 06:23:21 JST
石井です。
この問題、自己解決できました。
以下、解決方法を記載します。
ただ、他により良い実装方法があるような気がしますので、
代替案がある方はご連絡ください。
== 実装内容 ==============================================
$dom = domxml_open_mem($xmlData);
$xpath = $dom->xpath_new_context();
$nodesSub = $xpath->xpath_eval('//*[@id="sub"]');
$newDomSub = domxml_new_doc("1.0");
foreach ($nodesSub->nodeset as $node) {
if($node->node_type() == XML_ELEMENT_NODE && $node->node_name() == "div"){
$newNode = $newDomSub->create_element("tmp"); // (1)
$newNode->append_sibling($node);
$newDomSub->append_child($newNode);
$divSubData = $newDomSub->dump_mem();
}
}
== 結果 =============================================
$divSubData を少し形成すると、取得したいデータが得られました。
=====================================================
On Sat, 21 Apr 2007 01:35:01 +0900
s-ishii <bbswx419 @ ybb.ne.jp> wrote:
>
> 初めまして、石井と申します。
> php4.4.6の環境で、以下のxmlのid="sub"以下のツリーを取得したい
> と考えているのですが、どう実装してよいか悩んでおります。
> 実装方法をご存知であれば、ご教授願えますでしょうか。
>
> == XMLデータ ===============================
> <?xml version="1.0" encoding="UTF-8"?>
> <html xmlns="http://www.w3.org/1999/xhtml">
> <body>
> <div id="header"></div>
> <div id="main">
> コンテンツの内容です。<br/>
> <div id="sub">
> サブコンテンツの内容です。<br/>
> <div id="link">
> リンクです。<br/>
> <a href="http://www.google.com">グーグル</a><br/>
> </div>
> </div>
> </div>
> <div id="footer">フッターです</div>
> </body>
> </html>
>
> == 取得したい結果(id="sub"以下のデータ) ====
>
> サブコンテンツの内容です。<br/>
> <div id="link">
> リンクです。<br/>
> <a href="http://www.google.com">グーグル</a><br/>
> </div>
>
>
>
>
>
>
>
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
PHP-users メーリングリストの案内