ホームページ >バックエンド開発 >PHPチュートリアル >XML ファイルの値の変更に関する問題
questionの値を22222に変更したいのですが、この値をフロントで渡すのですが、どのように操作すればよいでしょうか?
<?xml version="1.0" encoding="utf-8"?><parent> <title>3</title> <author>admin</author> <contentall> <subject> <question>111111</question> <option> <oid>A</oid> <content>11</content> </option> <option> <oid>B</oid> <content>22</content> </option> <option> <oid>C</oid> <content>33</content> </option> <option> <oid>D</oid> <content>44</content> </option> </subject> <subject> <question>22222</question> <option> <oid>A</oid> <content>22</content> </option> <option> <oid>B</oid> <content>11</content> </option> <option> <oid>C</oid> <content>44</content> </option> <option> <oid>D</oid> <content>33</content> </option> </subject> <subject> <question>33333</question> <option> <oid>A</oid> <content>444</content> </option> <option> <oid>B</oid> <content>222</content> </option> <option> <oid>C</oid> <content>333</content> </option> <option> <oid>D</oid> <content>2111</content> </option> </subject> </contentall></parent>
どう変更したいですか?
$fn = '你的xml文件名';$tag = 'question'; //待修改的节点名$val = '22222'; //待修改的节点值,和 $tag 一起用于定位$replace = 'xxx'; //修改后的值$xml = simplexml_load_file($fn);$p = $xml->xpath("//{$tag}[.='$val']");$p[0][0] = $replace;$xml->asXML($fn); //写回去
PHP code?12345678$fn = 'xml ファイル名'; $tag = 'question'; //変更するノード名$val = '22222'; $replace = 'xxx'; //変更された値を見つけるために $tag が一緒に使用されます $xml = simplexml_load_file($fn);$p = $xml->xpath("//{$tag}[.=……
$p[0][0] とはどういう意味ですか?
xpath は、すべての修飾されたノードの配列 (2 次元オブジェクト配列) を返します
$p [0][0] は、最初に一致したノードを表します
$p[0] [0] はノード内の最初の要素を表します
xpath は条件を満たすすべてのノードの配列 (2 次元のオブジェクト配列) を返します
$p[0][0] 最初に一致した要素を表しますnode
$p[0][0] ノードの最初の要素を表します
あなたが言ったことによると、質問222222ではなく、質問111111と一致しませんか
$xml- >xpath("//{$ tag}[.='$val']");
実際の実行は
$xml->xpath("//question[.='22222']");
したがって、データの場合は 25b4f3c6865d3733f2597ce31b1323702222246ad4f255daf3e4496eb9ebf65db261e