使用php解析XML数据
下面是一个从外部xml文件加载的xml示例 $data=file\u get\u contents$filename; $dom->loadXML$data 使用php,我想遍历这个xml以获得标题、问题和每个问题的选择使用php解析XML数据,php,xml,dom,Php,Xml,Dom,下面是一个从外部xml文件加载的xml示例 $data=file\u get\u contents$filename; $dom->loadXML$data 使用php,我想遍历这个xml以获得标题、问题和每个问题的选择 <questions> <record topic = "classic video games"> <title>Centipede</title> <question>Ho
<questions>
<record topic = "classic video games">
<title>Centipede</title>
<question>How many shots does it take to destroy a mushroom?</question>
<choices>
<choice correct="no" votes="0">1</choice>
<choice correct="no" votes="0">2</choice>
<choice correct="no" votes="0">3</choice>
<choice correct="yes" votes="0">4</choice>
</choices>
</record>
<record topic = "classic video games">
<title>Quake</title>
<question>What is the name of the most powerful weapon in Quake?</question>
<choices>
<choice correct="no" votes="0">gauntlet</choice>
<choice correct="no" votes="0">machine gun</choice>
<choice correct="yes" votes="0">BFG2000</choice>
<choice correct="no" votes="0">rocket launcher</choice>
<choice correct="no" votes="0">railgun</choice>
</choices>
</record>
</questions>
以下是我的尝试:
$dom->loadXML($data);
$all_records = $dom->getElementsByTagName("record");
$all_choices = $dom->getElementsByTagName("choices");
foreach($all_records as $record){
$question = $record->getElementsByTagName("question")->item(0)->nodeValue;
$title = $record->getElementsByTagName("title")->item(0)->nodeValue;
echo "<h2> Title=$title</h2>";
echo "<h5><em>Question=$question</em></h5>";
echo "<li>". $all_choices->getElementsByTagName("choice")->nodeValue."</li>\n";
echo "</ul>\n";
echo "</div>\n";
}
我能得到标题和问题,但没有选择 检查每条记录时,需要使用内部循环获取选项集:
<?php
$dom->loadXML($data);
$all_records = $dom->getElementsByTagName("record");
foreach($all_records as $record) {
$question = $record->getElementsByTagName("question")->item(0)->nodeValue;
$title = $record->getElementsByTagName("title")->item(0)->nodeValue;
$choices = $record->getElementsByTagName('choice');
echo "<h2> Title=$title</h2>";
echo "<h5><em>Question=$question</em></h5>";
echo '<ol class="choices">';
foreach ( $choices as $choice ) {
echo "<li>" . $choice->nodeValue . "</li>\n";
}
echo "</ol>";
echo "</div>\n";
}
我把它修好了,然后回到办公室,把答案放了出来,但我找到了你的答案。非常感谢!嘿,对不起,我没早点回答:
<?php
$dom->loadXML($data);
$all_records = $dom->getElementsByTagName("record");
foreach($all_records as $record) {
$question = $record->getElementsByTagName("question")->item(0)->nodeValue;
$title = $record->getElementsByTagName("title")->item(0)->nodeValue;
$choices = $record->getElementsByTagName('choice');
echo "<h2> Title=$title</h2>";
echo "<h5><em>Question=$question</em></h5>";
echo '<ol class="choices">';
foreach ( $choices as $choice ) {
echo "<li>" . $choice->nodeValue . "</li>\n";
}
echo "</ol>";
echo "</div>\n";
}