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 と単純な XML 要素が含まれているので、このコードを作成しました。throw 入力コマンドを使用して子を置き換えようとして$_POSTいます。入力ボックスは上記のエコー部分にあり、js 置換コードを使用しています。テキストを onclick コマンドで入力テキストに置き換えます (私の質問ではあまり重要ではなく、説明のためだけです)。とにかく、コードが機能しないため、コードにほとんど行き詰まりませ$_POSTんでした.

答えはありますか?

助けてくれてありがとう、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 に答える