我有一个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