我有一個XML結構是這樣的:PHP的SimpleXML使用XPath
<?xml version="1.0"?>
<survey>
<responses>0</responses>
<question>
<title>Some survey question</title>
<answer>
<title>Answer 1</title>
<responses>0</responses>
</answer>
<answer>
<title>Answer 2</title>
<responses>0</responses>
</answer>
...
</question>
...
</survey>
我要遞增<responses>
值在$response
陣列中的值匹配的答案。這裏的$response
陣列是如何構成的:
$response = array(
'sid' => session_id(),
'answers' => array(
$_POST['input1'],
$_POST['input2'],
...
)
);
我有一個SimpleXMLElement稱爲$results
我調查的XML文件。下面是我要如何看:
$results = simplexml_load_file($surveyResultsFile);
$i = 1;
foreach($response->answers as $answer) {
$r = $results->xpath("question[$i]/answer[title='$answer']/responses");
$r = $r[0];
$r = intval($r) + 1;
$i++;
}
file_put_contents($surveyResultsFile, $results->asXML());
我的結果不會被保存遞增的$r
值後。關於我在做什麼的任何想法都是錯誤的?謝謝!
謝謝!該'$ response'數組的鍵是變量是一個錯字,因爲是'$ surveyResults',而不是'$ surveyResultsFile'底。我絕對需要更多地學習XPath和SimpleXML,因爲這是我第一次使用它們。 – Jared 2010-01-23 22:29:48