たまに他の言語やるとイテレータがないのと中途半端なオブジェクト指向にむかついてくるわけだが。
$doc = domxml_open_mem($template); // $template は xml な文字列が入った変数。 $xpc = xpath_new_context($doc); foreach ($ns as $prefix => $uri) { // $ns は prefix と namespace の連想配列 $xpc->xpath_register_ns($prefix, $uri); } $xns = $xpc->xpath_eval("/rdf:RDF/cc:Work/dc:title"); $ele = $xns->nodeset[0]; $ele->append_child($doc->create_text_node("test")); /* 上記3行を $xpc->xpath_eval("/rdf:RDF/cc:Work/dc:title")->nodeset[0]->append_child($doc->create_text_node("test")); と書きたい。 */
いちいち変数名考えるのがダルい。
あと domxml_open_mem()
と xpath_new_context()
とかが並んで使えるのもなんか違和感あるんだよなぁ。ネームスペースないってことはモジュール間で名前がコリジョンしたらどうするんだろ。特に include
とかしなくても使えるし……謎だ。自分で定義した関数がたまたまモジュールで定義されてたらエラーでるし(php は関数の再定義も無理)あるモジュールを有効にした環境と、無効にした環境でエラーがでたりでなかったりもするんだろうか?