2
<?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');
}
?>

所以我编写了这段代码,你可以看到它有 DOM 和 Simple XML 元素。我尝试使用$_POSTthrow input 命令替换 child,输入框在上面的 echo 部分中,我使用 js 替换代码,它通过 onclick 命令替换文本以输入文本(对我的问题并不重要,它只是为了解释)。无论如何,由于代码无法正常工作,因此我几乎没有卡住,我设置了$_POST,我尝试使用在 Stack Overflow 中找到的一些指南,但由于它与我的代码不匹配,因此无法正常工作。

你有什么答案吗?

谢谢你的帮助,YD

4

1 回答 1

0

使用示例simplexml---> 查看现场演示:http ://codepad.viper-7.com/2oR5Wk

$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>";
于 2013-03-24T23:03:46.670 回答