
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
(続き)
SimpleXML 関数を使いxpathも使うと
<?php
$file = "quiz.xml";
if (file_exists($file)) {
$xml = simplexml_load_file($file);
$quizs = $xml->xpath('/data/quiz');
foreach($quizs as $quiz){
list($no)=$quiz->xpath('@no');
list($question)=$quiz->xpath('question/text()');
list($answer)=$quiz->xpath('answer/text()');
print "問題: " . $no . " " . $question . "<br />";
print "答え " . $answer. "<br />";
}
} else {
exit('XML 入力をオープンできませんでした');
}
?>
これだけで、出来ます。詳細はphpのマニュアルで調べて下さい。
ご参考になれば幸いです。
PHPだけでは、これの応用はめんどうそうです。
javascriptと組み合わせて実用的なのを作って下さい。
参考URL:http://www.php.net/manual/ja/ref.simplexml.php
No.2
- 回答日時:
(続き)
SimpleXML 関数を使うと
<?php
$file = "quiz.xml";
if (file_exists($file)) {
$xml = simplexml_load_file($file);
foreach ($xml->children() as $quiz) {
print "<br />問題:" . $quiz->attributes() . " ";
foreach ($quiz->children() as $question) {
if ($question->getName()=="question"){
print $question[0];
}
if ($question->getName()=="answer"){
print "<br />答え " . $question[0];
}
}
}
} else {
exit('XML 入力をオープンできませんでした');
}
?>
となり、xpathも使うとさらに...
No.1
- 回答日時:
こんなquizのxml(quiz.xml)があったとして、
<?xml version="1.0" encoding="utf-8"?>
<data>
<quiz no="1">
<question>食べられないパンは?</question>
<answer>フライパン</answer>
</quiz>
<quiz no="2">
<question>たこの入れ歯って何?</question>
<answer>タバコ</answer>
</quiz>
</data>
これをPHPのXML関数で処理すると
<?php
$file = "quiz.xml";
$xml_parser = xml_parser_create("utf-8");
xml_parser_set_option ($xml_parser,XML_OPTION_CASE_FOLDING,1);
xml_set_element_handler($xml_parser,"startElement","endElement");
xml_set_character_data_handler($xml_parser, "dataget");
if (!($fp = fopen($file, "r"))) {
die("XML 入力をオープンできませんでした");
}
while ($data = fread($fp, 4096)) {
xml_parse($xml_parser, $data, feof($fp));
}
xml_parser_free($xml_parser);
function dataget($parser, $text){
global $tagname;
if($tagname=="QUESTION" or $tagname=="ANSWER"){
print $text;
}
}
function startElement($parser, $name,$attrs){
global $tagname;
$tagname = $name;
if ($name =="QUIZ"){
print "<br />問題:" . $attrs['NO'] . " ";
}
}
function endElement($parser, $name)
{
if ($name=="QUESTION"){
print "<br />答え";
}
}
?>
で、出来ます。
SimpleXML 関数を使うともっと簡単になる
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP phpでcookieがうまく保存されない 2 2023/08/02 16:40
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- HTML・CSS 疑似要素で背景画像に指定したSVG画像の色変更 2 2023/01/30 22:45
- アプリ MacBookでCLIP STUDIO PAINTから「写真」アプリを開いて、画像を読み込みたい 1 2023/08/05 12:34
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- 数学 この数学問題、スマートに解く方法を教えてください。 3 2023/01/26 23:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel-VBAでXMLの複数ノードの...
-
VBSでxmlの値を書き換えたい
-
encoding="unicode"について
-
XML同じ名前の要素を自動で集約...
-
YAHOOオークションAPI ...
-
tumblrのxmlをsimplexml_load_f...
-
php xml 読み込んで 一部のみ...
-
XMLファイルをPHPで読み込むには?
-
サイトマップの作り方。
-
C# TreeView 効率良いノード追...
-
XMLパースエラー
-
ルート要素ノードが2個ある場合?
-
複数のマックPCによる数値計算...
-
VBAでXMLを出力するプログラム...
-
CPUの考え方を教えてください ...
-
XSL中の改行、タブを無効にした...
-
ツリービューでクリック時にア...
-
VB6でXMLを作成しているのです...
-
ノードとは
-
ツリービューのノードをダブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel-VBAでXMLの複数ノードの...
-
VBSでxmlの値を書き換えたい
-
FOPでPDF作成時の日本語表示の...
-
sitemap.xmlとrobots.txtの関係
-
TOMCAT起動エラー
-
C#のDataGridViewにCheckBox
-
XML同じ名前の要素を自動で集約...
-
XMLのタグ名に予約語は禁止?
-
エラーメッセジの意味が分かり...
-
XMLファイルをPHPで読み込むには?
-
DTDについて
-
RSSファイルの拡張子はどれが正...
-
妥当なXML文書
-
YAHOOオークションAPI ...
-
tumblrのxmlをsimplexml_load_f...
-
サイトマップの作り方。
-
encoding="unicode"について
-
expatで&があるとうまく解析で...
-
php xml 読み込んで 一部のみ...
-
DOMで\\\\localhost\\~がload...
おすすめ情報