• 締切済み

<hatena>はてな</hatena>みたいなXMLのノードがあった

<hatena>はてな</hatena>みたいなXMLのノードがあったとします。 これをphpのsimpleXmlで <hatena>理解しますた</hatena> に変更するにはどうすればいいのでしょうか?

みんなの回答

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.3

参照先のふざけたコードを見ていると余計腹が立ってくる。 ついでに DOMDocument#createElement の第二引数には、textContent を指定できる取ってつけたような機能があるが、使用すべきではない。

全文を見る
すると、全ての回答が全文表示されます。
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.2

simple_xml に突っ込んだ時点で、PHP 世界に召喚されているのだから、PHP のルールに従って書いてやればいい。 $sxe->hatena = 'understand'; 名前空間だの QName だのはもはや無縁の話。単なるプロパティを持ったオブジェクトとして扱ってやればいい。 どうでもいいんだけど、何で誰もまともに扱えないんだ。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

http://d.hatena.ne.jp/fits/20100606/1275806436 上記の記事が参考になるかと思います。 SimpleXMLだけでは置換が出来ないので、一度、SimpleXMLで呼び出した要素を、DOMDocumentのオブジェクトに変換して処理する、って感じです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HATENA(はてな)questionについて

    HATENA(はてな)questionで質問しようと思ったら 有料らしいのですが回答することでもポイントをくれる ようなのですが少し分からないので質問させていただきます (1)質問一回についていくら(何ポイント)くらいかかりますか (2)回答することによってどのくらいポイントが稼げますが? (3)回答の精度はgooより上ですか? (4)十分な回答がもらえなくてもポイントはかかりますか?

  • XMLのロードに失敗する

    PHP5においてsimplexml_load_fileを使って、様々なサイトのRSS(XML)を読み込もうとしています。 一部のサイトに対してFalseが返ってきます。いまいちコンディションが掴みきれておらず うまくいくことうまくいかないことを記述させていただきます。 PHP設置環境の種類 ローカルサイト上のLinux、レンタルサーバA、レンタルサーバB、レンタルサーバC ターゲットRSS NHK http://www3.nhk.or.jp/rss/news/cat0.xml はてな http://feeds.feedburner.com/hatena/b/hotentry 毎日新聞 http://mainichi.jp/rss/etc/flash.rss 問題となるのは毎日新聞です。環境によって読めたり読めなかったりします。 ローカルでの結果 NHK、はてな、毎日新聞 いずれもOK レンタルサーバA 毎日だけNG レンタルサーバB すべてOK レンタルサーバC 毎日だけNG 今回はこのサーバAやCの問題をクリアしたいのですが方法がわかりません。 simplexml_load_fileがNHKやはてなに対して動作するのに毎日に対してのみ動かないという 観点からすると毎日側の仕様の影響かとも思うのですが、 PHPの設置環境によって動作が変わるという観点も加味すると PHPの設置環境の何かに依存し、読み込み対象が絞られる、というようなイメージを持っています。 いずれも無料サーバということもあり、検討ぐらいつけてから管理人に相談させていただくのが 良いかと思いこの場をお借りしております。 なお、レンタルサーバCは.land.toです。 よろしくお願いいたします。 エラー文 $data = simplexml_load_file($rss); if ($data == FALSE){ echo "Failed loading XML<br>\n"; foreach(libxml_get_errors() as $error) {echo "\t", $simplexml_load_fileerror->message;}//Failed loading XML was the returned error } Warning: simplexml_load_file(http://rss.yomiuri.co.jp) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/****/public_html/php/rss.php on line 9 Failed loading XML failed to load external entity "http://rss.yomiuri.co.jp" なお、rss.phpのline 9は $data = simplexml_load_file($rss);です。

    • ベストアンサー
    • PHP
  • XMLとの連携でノードの長さを取り出す方法

    PHP--------------------------------------------- $xpath = "/qq:album/img"; $xpath = mb_convert_encoding($xpath,"UTF-8","SJIS"); $x_array = $ctx->xpath_eval($xpath); $title_element = $x_array->nodeset[0]; $title = $title_element->get_attribute("title"); $title = mb_convert_encoding($title,"SJIS","UTF-8"); XML---------------------------------------------- <?xml version="1.0" encoding="EUC-JP"?> <qq:album xmlns:qq="www.phpdom.com"> <img title="ABC"> <img title="DEF"> <img title="GHI"> <img title="JKL"> </qq:album> こんにちは。 http://www.geocities.jp/xmlfirststep/dom/dom4.html のサイトを参考に、上のようなスクリプトを書きました。albumという名の親ノードの下にあるimgノードの要素titleを抜き出すものです。このimgノードをXMLで複数つくり、phpでその長さを自動で返してもらおうと思ったのですがそのやり方がわかりません。 色々なサイトを回りましたが、キーワード「length」で探してもそれらしき情報がまったく見つかりません。 どうすればノードの長さを返してもらえるのでしょうか?

    • ベストアンサー
    • PHP
  • Operaでhatenaが開けません

    Operaを使っているのですが、はてな(http://www.hatena.ne.jp/)のページが開けず困っています。 人力検索からはてなダイアリーまで全サービス使えません。 Opera 9.24 Windows xP Home SP2 という環境です。 なおIE 6では開くことが出来ます。また、別のパソコンのOpera 9.10ではhatenaのページを開くことができました。 よろしくお願いします。

  • ノードとは

    XMLの勉強をしていると ノード 【node】ということばが出てきます。 しかし解説書にはノードそのものの意味が 見つかりません。 gooの辞典では (1) 結節。節点。交点。 (2) 通信ネットワーク・物流の中継点。拠点。 と出るのですが、どれもしっくりきません。 XMLにおけるノードとはどのような意味に なるのでしょう ノード=??

  • SimpleXMLでxmlのデータを修正するときの疑問

    PHP5でflashで扱うXMLの編集をしています。 <xml> <aaa>12345</aaa> </xml> というxmlに対し、 $nodeName = "aaa"; $xml = simplexml_load_file($xmlFile); $xml->$nodeName->title = "aiueo"; という感じで、xmlの更新をしていますが、 <xml> <aaa>12345</aaa> <aaa>67890</aaa> <aaa>24680</aaa> </xml> と、xmlのnodeが同名複数になったとき、 $xml->aaa[0]->title = "aiueo"; 相当のことを、ノード名も、何番目のノードかも、 変数をつかって実行する方法はありますか? 当然のごとく、 $nodeName[$num]は、$nodeNameの配列の値とみなされますし、 $a = $nodeName . '[' . $num . ']'; $xsml->$a->title = "aiueo"; とやると、"aaa[0]"という文字列をノード名にしてデータ追加してしまいます。 ご存知の方がいらっしゃいましたら、ご教示下さい。

    • 締切済み
    • PHP
  • XMLでノード内にあるIDを取得してそのIDが含まれるノード内の内容を

    XMLでノード内にあるIDを取得してそのIDが含まれるノード内の内容を反映させる にはどうしたらいいでしょうか? XMLは以下のような感じです。 <?xml version="1.0" encoding="UTF-8"?> <top> <menu> <pid>1</pid> //これをIDとして <test>テスト</test> <test2>msn</test2> </menu> <menu> <pid>2</pid> <test>テストにしたのに…</test> <test2>教えてごお</test2> </menu> <menu> <pid>3</pid> <test>テスト</test> <test2>yahoo</test2> </menu> </top> 私はアクションスクリプトでxmlを読み込んでfirstChild やnextSiblingが使える程度のレベルです。 nextSiblingで上から順番にノードを取得していくことはできますが、 ”あるIDを取得してそのIDがある内容(<test>,<test2>)を反映させる” というところでつまずいています。 最悪はIDを取得しなくても ”?番目の<menu>を取得する” という取得の仕方でもいいです。 (<pid>と?番目は同じなので) あるいは ”<menu id="1">の属性を取得して反映させる” という方法の方が簡単ならばXMLの変更も可能な状態です。

    • ベストアンサー
    • Flash
  • PHPでXMLファイルを読み込みたい

    PHPを使ってxmlファイルを読み込んで、タグの中のデータなどを読み込んだりしたいです。 ですが、自作のxmlファイルだと simplexml_load_file()で読み込めません。xmlファイルの文字コードを色々と変えて試してみましたが、できませんでした。 ちなみに以下のコードは正常に動きました。Yahoo!のxmlファイルです。 $url = "http://rss.weather.yahoo.co.jp/rss/days/5710.xml"; $rss = simplexml_load_file($url); 出力は「【 25日(金) 嶺北(福井) 】 晴れ - 23℃/8℃ - Yahoo!天気・災害」でした。 何度かやるうちにアルファベットは表示できても日本語が表示できないということもありました。 また、xmlファイルをphpのプログラムに作らせたいです。そのときに、simplexml_load_file()で読み込める日本語も含むxmlファイルをphpで作成するプログラムを教えていただけると嬉しいです。 お願いします。

    • ベストアンサー
    • PHP
  • XML DOM ルートノード直下に子ノードを持つノードを追加

    XML DOMを利用して、XMLファイルにデータを追加するPHPを書いています。 リファレンス等を参照して、追加は出来るようになったのですが ルートノードが増えていってしまいます。 ::::::::::::::::::::::::::::::::::::::::::::::::::::: define("XMLFILE", "○○.xml"); header("Content-Type: text/html; charset=UTF-8"); $doc = new DOMDocument("1.0","UTF-8"); $doc->formatOutput = TRUE; $doc->load(XMLFILE) or die("ファイルを読み込めません\n"); $record = $doc->createElement("record"); $date = $doc->createElement("date","日付サンプル"); $title = $doc->createElement("title","タイトルサンプル"); $paragraph = $doc->createElement("paragraph","パラグラフ"); $number = $doc->createAttribute("number"); $number->value ="004"; $doc->appendChild($record); $record->appendChild($number); $record->appendChild($date); $record->appendChild($title); $record->appendChild($paragraph); print htmlspecialchars($doc->saveXML(), ENT_NOQUOTES); $doc->save(XMLFILE) or die("ファイルを保存できません。"); :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: どのようにすれば、ルートノードの下に新規ノードが入ってくれるのでしょうか。 どなたか教えて頂けるととても嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • xmlからのデータ取得について

    PHPでXMLを扱う場合、simplexml、XMLReaderなどありますが、 XMLから繰り返さないひとつだけの情報を取り出すにはどんな方法が効果的でしょうか。例えば検索結果の数などです。 XMLReaderを使ってみたのですがうまく書くことができませんでした。引き続きいろいろやってみますが、アドバイスをいただけたらありがたく思います。どうぞよろしくお願いします。

    • 締切済み
    • PHP
このQ&Aのポイント
  • 3月13日辺りからマスクは個人判断とありますが、コロナ禍が長引くせいか画面越しみたく完全に遮るものが無しの状態で、人の鼻と口が見えると、パニックになります。
  • マスクせずに声を出した場合、相手に刃物で刺しているのと同じくらい、殺人犯と一緒の感覚にさえ思ってしまいます。
  • 春先以降はマスクは任意とありますが、早速外そうと思ってる人はいますか?接客する側の人がマスク無しで声出していたらと考えると怒りが湧いてきます。
回答を見る