ホームページ >バックエンド開発 >PHPチュートリアル >XML ファイルの値の変更に関する問題

XML ファイルの値の変更に関する問題

WBOY
WBOYオリジナル
2016-06-23 14:03:03923ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。