2011-01-05 101 views
0

我想将4c050652f0c3e(的<testimonial id="xxx">)更改为通过表单发送的动态变量。 我的变量是$nodeid = $_POST['nodeid'];,但我无法替换它的权利。PHP XML简单变量问题

这是代码

foreach($testimonials->xpath("testimonial[@id='4c050652f0c3e']") as $t) { 
    $t->$_POST['tagname'] = $_POST['newname']; 
} 

这是我做的,但是这是不对的

foreach($testimonials->xpath("testimonial[@id=$_POST['nodeid']]") as $t) { 
    $t->$_POST['tagname'] = $_POST['newname']; 
} 

谢谢!

+0

不应该一个XPath的进出口。从...开始 ”//”? – 2011-01-05 14:55:08

+0

@ MrQ.C。不,这只是告诉XPath表达式匹配文档中的任何地方,这不一定是想要的。 – Gordon 2011-01-05 15:01:07

回答

0

试加'

foreach($testimonials->xpath("testimonial[@id='".$_POST['nodeid']]."'") as $t) { 
    $t->$_POST['tagname'] = $_POST['newname']; 
} 
1

foreach在你的数组副本上工作,所以这是行不通的。你可以使用不同的循环,或使用引用数组

+0

另请参阅:http://php.net/manual/en/control-structures.foreach.php – Nanne 2011-01-05 14:56:25

1

试试这个(for循环):

foreach($testimonials->xpath("testimonial[@id='".$_POST['nodeid']."']") as $t) { 
    $t->$_POST['tagname'] = $_POST['newname']; 
}