Php 替换XML中的子对象 name.” “.$xml->lastname” “.$xml->email” “.$xml->level” “.$xml->生日” “.$xml->gender” “.$xml->age” “.$xml->country。” '; } 会话_start(); 如果(isset($_POST['save'])){ $member=$_POST['newname']; $dom=新的DOMDocument(); $dom->load('users/'.basename($file.'.xml'); $editname=$dom->getElementsByTagName('name'); $newname=$dom->createTextNode($member); foreach($editname为$edit){ $edit->parentNode->replaceChild($newname,$edit); } $dom->save('users/'.basename($file)。'.xml'); } ?>
所以我编写了这段代码,正如您所看到的,它包含DOM和简单的XML元素。 我试图使用Php 替换XML中的子对象 name.” “.$xml->lastname” “.$xml->email” “.$xml->level” “.$xml->生日” “.$xml->gender” “.$xml->age” “.$xml->country。” '; } 会话_start(); 如果(isset($_POST['save'])){ $member=$_POST['newname']; $dom=新的DOMDocument(); $dom->load('users/'.basename($file.'.xml'); $editname=$dom->getElementsByTagName('name'); $newname=$dom->createTextNode($member); foreach($editname为$edit){ $edit->parentNode->replaceChild($newname,$edit); } $dom->save('users/'.basename($file)。'.xml'); } ?>,php,html,xml,Php,Html,Xml,所以我编写了这段代码,正如您所看到的,它包含DOM和简单的XML元素。 我试图使用$\u POSTthrow input命令替换child,输入框在上面的echo部分,我使用js替换代码,它通过onclick命令替换文本以输入文本(对我的问题来说并不重要,只是为了解释)。 不管怎样,由于代码不起作用,我几乎没有被卡住,我设置了$\u POST,我尝试使用在堆栈溢出中找到的一些指南,但它不起作用,因为它与我的代码不匹配 你有什么答案吗 感谢您的帮助,Y.D.使用simplexml的示例-->请参见
$\u POST
throw input命令替换child,输入框在上面的echo部分,我使用js替换代码,它通过onclick命令替换文本以输入文本(对我的问题来说并不重要,只是为了解释)。
不管怎样,由于代码不起作用,我几乎没有被卡住,我设置了$\u POST
,我尝试使用在堆栈溢出中找到的一些指南,但它不起作用,因为它与我的代码不匹配
你有什么答案吗
感谢您的帮助,Y.D.使用
simplexml的示例-->请参见现场演示:
$xmlstr=head->name)-1;
对于($x;$x>=0;$x--){
$xml->head->name[$x]=“newname”;
}
回声“;
var_dump($xml);
回声“;
我不太确定,但你的解决方案对我来说似乎有些过分。为什么不通过ajax调用php并根据结果从javascript更新dom呢?不。。。从js更新dom是不可能的,只有从PHP,我的问题是缺少一些东西,或者我使用dom代替SimpleXML,但我不确定如何修复它,或者我真正的问题是什么,毕竟我问这个问题的原因。请展示你的xml和你想要的xml的示例。我不认为xml有一部分,它是正常的XML版本1,name元素是我希望编辑的元素。如果它实际上回答了你的问题,请考虑接受一个答案(点击左边的刻痕)。
<?php
$files = glob('users/*.xml');
foreach($files as $file) {
$xml = new SimpleXMLElement($file, 0, true);
echo '
<tr>
<td><input type="radio" name="browser" onclick="check(this.value)" value="'. basename($file) .'"></td>
<td class="alternate-row1">'. basename($file, '.xml') .'</td>
<td><span id="itm1" onclick="exchange(this.id)">'. $xml->name .'</span><input id="itm1b" class="replace" type="text" name="newname"></td>
<td class="alternate-row1">'. $xml->lastname .'</td>
<td>'. $xml->email .'</td>
<td class="alternate-row1">'. $xml->level .'</td>
<td>'. $xml->birthday .'</td>
<td class="alternate-row1">'. $xml->gender .'</td>
<td>'. $xml->age .'</td>
<td class="alternate-row1">'. $xml->country .'</td>
</tr>';
}
session_start();
if (isset($_POST['save'])){
$member = $_POST['newname'];
$dom = new DOMDocument();
$dom->load('users/' . basename($file) . '.xml');
$editname = $dom->getElementsByTagName('name');
$newname = $dom->createTextNode($member);
foreach ($editname as $edit) {
$edit->parentNode->replaceChild($newname, $edit);
}
$dom->save('users/' . basename($file) . '.xml');
}
?>
$xmlstr = <<<XML
<root>
<head>
<name id="1">test</name>
<name id="2">file</name>
<name id="3">name</name>
</head>
</root>
XML;
$xml = simplexml_load_string($xmlstr);
echo "<pre>";
var_dump($xml);
echo "</pre>";
$x = count($xml->head->name)-1;
for ($x; $x>=0; $x--) {
$xml->head->name[$x] = "newname";
}
echo "<pre>";
var_dump($xml);
echo "</pre>";