循环使用xml php时缺少记录

循环使用xml php时缺少记录,php,xml,simplexml,Php,Xml,Simplexml,抱歉,如果这是一个重复,我看到其他类似的问题,但我不能让我的工作 我有以下XML: <?xml version="1.0" encoding="ISO-8859-1"?> <quizzes> <quiz> <title>Arithmetic quiz</title> <description> <text>Seeing how mathematical quiz works</text> </d

抱歉,如果这是一个重复,我看到其他类似的问题,但我不能让我的工作

我有以下XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<quizzes>
<quiz>
<title>Arithmetic quiz</title>
<description>
<text>Seeing how mathematical quiz works</text>
</description>

<grading>
<range start="0" end="49">
<grade>F</grade>
<rank/>
</range>
<range start="50" end="60">
<grade>D</grade>
<rank/>
</range>
<range start="60" end="69">
<grade>C</grade>
<rank/>
</range>
<range start="70" end="79">
<grade>B</grade>
<rank/>
</range>
<range start="80" end="100">
<grade>A</grade>
<rank/>
</range>
</grading>

<question type="">
<text>Select the correct value for the common difference:2,6,10,14,18,22</text>
<option>
<text>26</text>
<score>5</score>
<explanation>
<text>Correct!</text>
</explanation>
</option>

<option>
<text>18</text>
<score>0</score>
<explanation>
<text>Incorrect!</text>
</explanation>
</option>

<option>
<text>10</text>
<score>0</score>
<explanation>
<text>Incorrect!</text>
</explanation>
</option>
</question>

</quiz>
</quizzes>

算术测验
看看数学测验是如何进行的
F
D
C
B
A.
为公共差选择正确的值:2,6,10,14,18,22
26
5.
对的
18
0
不对!
10
0
不对!
我希望能够循环并获得“分数”元素,但除了“测验”之外,我没有得到任何东西

我的代码如下所示:

$xml=simplexml_load_file("maths.xml");
echo $xml->getName() . "<br>";

foreach($xml->children() as $child)
   {
   echo $child->getName() . ": " . $child . "<br>";
   }
$xml=simplexml\u load\u文件(“math.xml”);
echo$xml->getName()。“
”; foreach($xml->children()作为$child) { echo$child->getName()。“:”$child。“
”; }
有人能给我指出正确的方向吗?我认为我没有深入遍历XML树,但我不知道如何实现这一点。

您可以使用:

$xml=simplexml_load_file('math.xml');
var_dump($xml->xpath('//score'));
//score
将选择所有
元素,而不管它们在xml树中的位置如何。我已经为您提供了一篇关于简单xml的初学者文章:

另一种选择是使用:


教程:

很明显,当您仅对根元素的子元素进行预处理时,您只需要进行小测验。“你甚至都不想得分。”戈登,谢谢,我怀疑是这样的。我是一个有点傻的人,所以我甚至确定该用谷歌搜索什么。我一键入答案,问题就结束了。无论如何,我会把它作为一条评论发布:P@AmalMurali你可以通过在回答之前先搜索被骗者来避免这种情况。这也有助于保持网站的清洁。你现在有3k,所以你可以投票了。使用这个特权。
$doc = new DOMDocument();
$doc->load('math.xml');

foreach($doc->getElementsByTagName('score') as $element) {
    echo $element->nodeValue;
}