- 締切済み
PHP5でのXMLの扱いについて
php5でXMLを扱いたいのですが, 現在の流れはどのようになっているのでしょうか? DOMなのかSAXなのか そしてPEARのライブラリは何が主流なのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- saintandre
- ベストアンサー率31% (194/607)
関連するQ&A
- XMLファイルをPHPで読み込むには?
PHPとXMLを勉強しております。タイトル通りなのですが、どのようにすればよいのでしょうか? PHP4とPHP5ではやりかたが違うようなのですが・・・。 一応自分なりに調べてみたのですがphp5ではsimpleXML関数を使用すればできるようなのですが、私が使用しているサーバーがロリポップでして、PHP4ではどうすればいいのでしょうか。 PEARを使用するといった文章をよく観たのですが、さっぱりわからない状態です。 PEARの使い方を初心者でもわかりやすく書いてあるサイトはありませんでしょうか。できればPEARを使用せずにXMLを読み込む方法などもありましたら、ご助言をお願いいたします。
- ベストアンサー
- XML
- PHPでのXML操作について
お世話になります。 PHPを少し触れる程度の初心者です。 現在PHPで既存のXMLファイルへの書き込み・削除などの編集が出来ないかと方法を探っているのですが、DOMを使うやXpathを使う、他にも色々と書かれていて少々混乱気味です。 PHP5だけで、例えば以下の様な事は可能なのでしょうか? (1) <?xml version='1.0'?> <DataSet> <Table> <name>○○○</name> <auther>×××</auther> </Table> </DataSet> というXMLファイルがあった場合、 (2) <?xml version='1.0'?> <DataSet> <Table> <name>○○○</name> <auther>×××</auther> </Table> <Table> <name>△△△</name> <auther>×××</auther> </Table> </DataSet> という様な追加。 そして再び元の(1)へ戻す様な削除です。 PHPだけでは不可能である場合、一番分かり易く簡単だと思われる方法を、どなたか分かり易くご教授願えないでしょうか? 宜しくお願いします。
- ベストアンサー
- PHP
- xml-dom、xslt が使えないサーバで、何とかしてCMSDesignerを動かしたい
CMSDesignerというCMSツールを、私が今使っているレンタルサーバに導入を検討しており、利用可否をサーバ会社に問合せたのですが、xml-dom、xsltライブラリがサポートされていない為、利用できないと回答ありました。 CMSDesignerの供給元からも、CMSDesignerは、xml-dom、xsltライブラリが必須の為、私のサーバでは使えないと回答されたのですが、xml-dom、xsltライブラリをインストールせずに、何とかして動かす方法があればチャレンジしたいのです。ただ、知識も知恵もなく、全く良い案が浮かびません。 そこで、百戦錬磨のphpのプロの方々、何か良い方法があれば、ご教授ください。 よろしくお願いいたします。
- 締切済み
- その他([技術者向] コンピューター)
- PHPのDOMでXML読み込もうとしているのですが...
PHPのDOMでXML読み込もうとしているのですが、getElementsByTagNameがうまくいきません。 PHPのバージョンは5です。 コードは以下のとうりです。 $document = new DomDocument('1.0'); $document -> Load('test.xml'); $items = $document -> getElementsByTagName('item'); if(!is_null( $items)){ echo count($items); echo "ok"; } XMLにitemノードは3つあるので、 echo count($items); で 3が返ってくると思うのですが、1しか返ってきません。 $items -> value でも何も表示されません。 でも cho "ok"; の ok は表示されます。 すみません。どなたかどこが間違っているのか教えていただけると助かります。
- ベストアンサー
- PHP
- PHPでのサーバー内へのXML保存について
現在、テスト用サーバーで作成、動作確認を行ったプログラムをレンタルサーバーに移行しているのですが その過程で、分からない事が発生したので質問させていただきます。 PHPでDomDocumentでXMLを作成し、$dom->save("aaa.xml")と保存したいのですが 上記内容を実行すると、ファイルが保存されません。 パーミッションの設定も問題なく、上記内容をチェックしてもエラーも返らないで書き込んだバイト数を返してきます。 プログラム上は、XMLの作成、保存はうまく言っているようなのですが・・・ 試しに、拡張子をxmlでは無く、$dom->save("aaa.php")と変更するとちゃんと保存されます。 という事は、やはり保存はうまく言ってるはずだと思うのですが・・・ FTPからは、拡張子がxmlでもアップロードできます。 PHPからは拡張子をphpにすると大丈夫だったので試しにtxtにもしてみましたが、txtは保存出来ませんでした。 これは、サーバー側の設定でしょうか? もしそうだとすると、.htaccessで設定可能でしょうか?(.htaccessでの設定をどこまで許可してるかにもよると思いますが・・) 可能な場合は、設定名というか項目名は何になるのでしょうか? 管理会社では特になにか制限はしていないとの事ですが、何が考えられますでしょうか? 以上、どなたか分かる方がいらっしゃったら、ご回答お願いいたします。
- ベストアンサー
- PHP
- XMLパーサの種類について混乱してます
XSLTをいじる必要に駆られて、現在Java1.4+JAXP1.1を利用しています。 いままで、javax.xml.transformをimportしてメソッドを実行するだけで、「変換系に何を使っているのか」については全く気にしていなかったのですが、その実体は何なのでしょうか? (XTとかXalanとか、単体の変換系がありますよね・・・?) また、DOMパーサ、SAXパーサもJAXPで使えますが、各々のパーサや変換系を集めてパッケージにしたものがJAXPなんでしょうか。 さらに、勉強中にXMLパーサという単語が出てきて混乱しています。XMLパーサは、DOM・SAX・XSLT等とは違うのでしょうか? (XMLパーサと名乗っているXercesは何に使うのでしょうか・・・) DTDとの関連も含めて解説して頂けたら嬉しいです。
- ベストアンサー
- Java
- JavaからXMLプロセッサを使うとは?
JavaでXMLを処理する必要に駆られまして、一念発起して勉強しています。 XMLを処理するためには、JavaのAPIがあってそれを利用するというのはokで、処理方法にはDOM・SAX・XSLTといったものがあるというのもわかりました。 ただ、DOMやSAXが、Javaプログラムからデータを読む手助けをするためのモノというのはわかるのですが、XSLTはただの変換とどう違うのでしょうか? 本を読む限り、XSLの規則にしたがって変換するもの。となっていて、読み込ませる→変換結果が出てくる、で、なんだかHTMLの生成くらいにしか使えないような印象なのですが、Javaとタッグを組んでデータを処理させたい場合、どんな使われ方をするのでしょうか。 DOMやSAXでも良いじゃんと言われそうなのですが、HTMLも同時に扱う必要があるため、ぜひ習得したいのです。 ですが、市販のJava本はほとんどXMLパーサ関係ばかりで・・・。また、何かいい参考書もあったら教えていただきたいと思います。
- ベストアンサー
- Java
- xmlファイルが生成されない
<?php //DomDocumentを呼び出す $dom = new DomDocument('1.0','UTF-8'); //要素ノード[document]を追加 $document = $dom->appendChild($dom->createElement('document')); //新しい要素をdocumentの子要素として挿入する $document->appendChild($dom->createElement('name','名前です')); $document->appendChild($dom->createElement('text','テキストです。')); //字下げや空白を考慮してきれいに整形した出力を行う $dom->formatOutput = true; //同階層にtest.xmlとして保存 $dom->save('test.xml'); //出力 echo $dom->saveXML(); ?> のように、同じディレクトリ内にXMLファイルを生成するphpプログラムを作成してみたのですが、 ブラウザからこのPHPファイルにアクセスしてもXMLファイルが作られません。どうすれば良いのでしょうか。 なにかphp,apache等の設定をしてないからでしょうか。 よろしくお願いします。
- 締切済み
- PHP
- PHPで、xmlを書き換えたい
PHP初心者です。 年月日を記録してあるxmlを、phpから書き換えたいのですが、 動作しなくて困っています。。 現在の年月日は 2011.4.7 で 書き換え後の年月日は 2100.9.9 にしたいです。 「index.html」と「memory.xml」が同じフォルダ内にあります。 ●memory.xmlの内容は以下のとおりです-------------------- <?xml version="1.0"?> <memory> <year>2011</year> <month>4</month> <day>7</day> </memory> ●htmlに以下のphpコードを書きました-------------------- <?php $memoryFile = 'memory.xml'; if ( $xml = simplexml_load_file ( $memoryFile ) ) { function changeMemory ( $year, $month, $day ) { $xml -> year = $year; //年の書き換え $xml -> month = $month; //月の書き換え $xml -> day = $day; //日の書き換え $xml -> asXML ( $memoryFile ); //ファイルに書き出す } changeMemory ( 2100 , 9 , 9 ); } ?> どうも、以下の1文が作動してくれない気がします。。 $xml -> asXML($memoryFile); //ファイルに書き出す どなたか原因がわかる方いらっしゃいましたら、 なにとぞご教授よろしくお願いいたします。。
- ベストアンサー
- PHP
- [PHP+XML]PHPで動的に出力するXMLをどのようにして読み込めばいいでしょうか?
こんにちは、どうしても解決ができなくて困っています。 お助け願います。 DBからデータを取得し成形するなどした結果をXMLで出力できるようにPHPを用意しました。 ブラウザから確認でき、XMLをソース表示しても問題ありません。 次にこれを読み込むPHPを書いています。 simplexml_load_fileなどでXMLファイルを開くことはこれまでにもやっていたので、直接XMLファイル名を記述するところに用意したPHPを指定しました。 結果はエラー。 いろいろ検証した結果、PHPがアクションする前にPHPファイルが開かれてしまっている感じ。 DOMDocumentのload()やloadXML()で読み込む方法もトライしましたが結果は同じ・・・。 根本的に間違ってますか? PHPから吐き出されるXMLを読み込むためにXMLファイルを記述するところにPHPスクリプトを指定すること自体が間違っているようにも思っています。 お手数をお掛けいたしますがお教え願います。
- ベストアンサー
- PHP
お礼
ありがとうございます。 なかなか その辺の情報が薄く、入手できずにいました 参考になりました。