修改xml文件值的问题

WBOY
Freigeben: 2016-06-23 14:03:03
Original
901 Leute haben es durchsucht

我想改变question为22222的值,这个值是在前台传入的,不过我不知道应该如何传,应该如何操作了?最好是用DOMDocument类来操作

<?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>
Nach dem Login kopieren


回复讨论(解决方案)

你想怎么改?

$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); //写回去
Nach dem Login kopieren

PHP code?12345678$fn = '你的xml文件名';$tag = 'question'; //待修改的节点名$val = '22222'; //待修改的节点值,和 $tag 一起用于定位$replace = 'xxx'; //修改后的值$xml = simplexml_load_file($fn);$p = $xml->xpath("//{$tag}[.=……

$p[0][0]是什么意思啊?

xpath 返回的是所有符合条件节点数组(是一个二维的对象数组)

$p [0][0] 表示第一个匹配到的节点
$p[0] [0] 表示节点中的第一个元素

xpath 返回的是所有符合条件节点数组(是一个二维的对象数组)

$p[0][0] 表示第一个匹配到的节点
$p[0][0] 表示节点中的第一个元素
那按照你这样说的话不就是匹配了question为111111,不是question为222222吧

$xml->xpath("//{$tag}[.='$val']");
实际执行的是
$xml->xpath("//question[.='22222']");

所以对于你的数据,只会匹配到 22222

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage